rpms/vim/F-9 7.2.001, NONE, 1.1 7.2.002, NONE, 1.1 7.2.003, NONE, 1.1 7.2.004, NONE, 1.1 7.2.005, NONE, 1.1 7.2.006, NONE, 1.1 7.2.007, NONE, 1.1 7.2.008, NONE, 1.1 7.2.009, NONE, 1.1 7.2.010, NONE, 1.1 7.2.011, NONE, 1.1 7.2.012, NONE, 1.1 7.2.013, NONE, 1.1 7.2.014, NONE, 1.1 7.2.015, NONE, 1.1 7.2.016, NONE, 1.1 7.2.017, NONE, 1.1 7.2.018, NONE, 1.1 7.2.019, NONE, 1.1 7.2.020, NONE, 1.1 7.2.021, NONE, 1.1 7.2.022, NONE, 1.1 7.2.023, NONE, 1.1 7.2.024, NONE, 1.1 7.2.025, NONE, 1.1 7.2.026, NONE, 1.1 7.2.027, NONE, 1.1 7.2.028, NONE, 1.1 7.2.029, NONE, 1.1 7.2.030, NONE, 1.1 7.2.031, NONE, 1.1 7.2.032, NONE, 1.1 7.2.033, NONE, 1.1 7.2.034, NONE, 1.1 7.2.035, NONE, 1.1 7.2.036, NONE, 1.1 7.2.037, NONE, 1.1 7.2.038, NONE, 1.1 7.2.039, NONE, 1.1 7.2.040, NONE, 1.1 7.2.041, NONE, 1.1 7.2.042, NONE, 1.1 7.2.043, NONE, 1.1 7.2.044, NONE, 1.1 7.2.045, NONE, 1.1 7.2.046, NONE, 1.1 7.2.047, NONE, 1.1 7.2.048, NONE, 1.1 7.2.049, NONE, 1.1 7.2.050, NONE, 1.1 7.2.051, NONE, 1.1 7.2.052, NONE, 1.1 7.2.053, NONE, 1.1 7.2.054, NONE, 1.1 7.2.055, NONE, 1.1 7.2.056, NONE, 1.1 7.2.057, NONE, 1.1 7.2.058, NONE, 1.1 7.2.059, NONE, 1.1 7.2.060, NONE, 1.1 filetype.vim, NONE, 1.1 gzip.vim, NONE, 1.1 netrw.vim, NONE, 1.1 netrwFileHandlers.vim, NONE, 1.1 netrwPlugin.vim, NONE, 1.1 netrwSettings.vim, NONE, 1.1 tar.vim, NONE, 1.1 vim-7.1-lib64.patch, NONE, 1.1 vim-7.2-fstabsyntax.patch, NONE, 1.1 zip.vim, NONE, 1.1 .cvsignore, 1.22, 1.23 README.patches, 1.104, 1.105 sources, 1.22, 1.23 vim.spec, 1.207, 1.208 7.1.001, 1.1, NONE 7.1.002, 1.1, NONE 7.1.003, 1.1, NONE 7.1.004, 1.1, NONE 7.1.005, 1.1, NONE 7.1.006, 1.1, NONE 7.1.007, 1.1, NONE 7.1.008, 1.1, NONE 7.1.009, 1.1, NONE 7.1.010, 1.1, NONE 7.1.011, 1.1, NONE 7.1.012, 1.1, NONE 7.1.013, 1.1, NONE 7.1.014, 1.1, NONE 7.1.015, 1.1, NONE 7.1.016, 1.1, NONE 7.1.017, 1.1, NONE 7.1.018, 1.1, NONE 7.1.019, 1.1, NONE 7.1.020, 1.1, NONE 7.1.021, 1.1, NONE 7.1.022, 1.1, NONE 7.1.023, 1.1, NONE 7.1.024, 1.1, NONE 7.1.025, 1.1, NONE 7.1.026, 1.1, NONE 7.1.027, 1.1, NONE 7.1.028, 1.1, NONE 7.1.029, 1.1, NONE 7.1.030, 1.1, NONE 7.1.031, 1.1, NONE 7.1.032, 1.1, NONE 7.1.033, 1.1, NONE 7.1.034, 1.1, NONE 7.1.035, 1.1, NONE 7.1.036, 1.1, NONE 7.1.037, 1.1, NONE 7.1.038, 1.1, NONE 7.1.039, 1.1, NONE 7.1.040, 1.1, NONE 7.1.041, 1.1, NONE 7.1.042, 1.1, NONE 7.1.043, 1.1, NONE 7.1.044, 1.1, NONE 7.1.045, 1.1, NONE 7.1.046, 1.1, NONE 7.1.047, 1.1, NONE 7.1.048, 1.1, NONE 7.1.049, 1.1, NONE 7.1.050, 1.1, NONE 7.1.051, 1.1, NONE 7.1.052, 1.1, NONE 7.1.053, 1.1, NONE 7.1.054, 1.1, NONE 7.1.055, 1.1, NONE 7.1.056, 1.1, NONE 7.1.057, 1.1, NONE 7.1.058, 1.1, NONE 7.1.059, 1.1, NONE 7.1.060, 1.1, NONE 7.1.061, 1.1, NONE 7.1.062, 1.1, NONE 7.1.063, 1.1, NONE 7.1.064, 1.1, NONE 7.1.065, 1.1, NONE 7.1.066, 1.1, NONE 7.1.067, 1.1, NONE 7.1.068, 1.1, NONE 7.1.069, 1.1, NONE 7.1.070, 1.1, NONE 7.1.071, 1.1, NONE 7.1.072, 1.1, NONE 7.1.073, 1.1, NONE 7.1.074, 1.1, NONE 7.1.075, 1.1, NONE 7.1.076, 1.1, NONE 7.1.077, 1.1, NONE 7.1.078, 1.1, NONE 7.1.079, 1.1, NONE 7.1.080, 1.1, NONE 7.1.081, 1.1, NONE 7.1.082, 1.1, NONE 7.1.083, 1.1, NONE 7.1.084, 1.1, NONE 7.1.085, 1.1, NONE 7.1.086, 1.1, NONE 7.1.087, 1.1, NONE 7.1.088, 1.1, NONE 7.1.089, 1.1, NONE 7.1.090, 1.1, NONE 7.1.091, 1.1, NONE 7.1.092, 1.1, NONE 7.1.093, 1.1, NONE 7.1.094, 1.1, NONE 7.1.095, 1.1, NONE 7.1.096, 1.1, NONE 7.1.097, 1.1, NONE 7.1.098, 1.1, NONE 7.1.099, 1.1, NONE 7.1.100, 1.1, NONE 7.1.101, 1.1, NONE 7.1.102, 1.1, NONE 7.1.103, 1.1, NONE 7.1.104, 1.1, NONE 7.1.105, 1.1, NONE 7.1.106, 1.1, NONE 7.1.107, 1.1, NONE 7.1.108, 1.1, NONE 7.1.109, 1.1, NONE 7.1.110, 1.1, NONE 7.1.111, 1.1, NONE 7.1.112, 1.1, NONE 7.1.113, 1.1, NONE 7.1.114, 1.1, NONE 7.1.115, 1.1, NONE 7.1.116, 1.1, NONE 7.1.117, 1.1, NONE 7.1.118, 1.1, NONE 7.1.119, 1.1, NONE 7.1.120, 1.1, NONE 7.1.121, 1.1, NONE 7.1.122, 1.1, NONE 7.1.123, 1.1, NONE 7.1.124, 1.1, NONE 7.1.125, 1.1, NONE 7.1.126, 1.1, NONE 7.1.127, 1.1, NONE 7.1.128, 1.1, NONE 7.1.129, 1.1, NONE 7.1.130, 1.1, NONE 7.1.131, 1.1, NONE 7.1.132, 1.1, NONE 7.1.133, 1.1, NONE 7.1.134, 1.1, NONE 7.1.135, 1.1, NONE 7.1.136, 1.1, NONE 7.1.137, 1.1, NONE 7.1.138, 1.1, NONE 7.1.139, 1.1, NONE 7.1.140, 1.1, NONE 7.1.141, 1.1, NONE 7.1.142, 1.1, NONE 7.1.143, 1.1, NONE 7.1.144, 1.1, NONE 7.1.145, 1.1, NONE 7.1.146, 1.1, NONE 7.1.147, 1.1, NONE 7.1.148, 1.1, NONE 7.1.149, 1.1, NONE 7.1.150, 1.1, NONE 7.1.151, 1.1, NONE 7.1.152, 1.1, NONE 7.1.153, 1.1, NONE 7.1.154, 1.1, NONE 7.1.155, 1.1, NONE 7.1.156, 1.1, NONE 7.1.157, 1.1, NONE 7.1.158, 1.1, NONE 7.1.159, 1.1, NONE 7.1.160, 1.1, NONE 7.1.161, 1.1, NONE 7.1.162, 1.1, NONE 7.1.163, 1.1, NONE 7.1.164, 1.1, NONE 7.1.165, 1.1, NONE 7.1.166, 1.1, NONE 7.1.167, 1.1, NONE 7.1.168, 1.1, NONE 7.1.169, 1.1, NONE 7.1.170, 1.1, NONE 7.1.171, 1.1, NONE 7.1.172, 1.1, NONE 7.1.173, 1.1, NONE 7.1.174, 1.1, NONE 7.1.175, 1.1, NONE 7.1.176, 1.1, NONE 7.1.177, 1.1, NONE 7.1.178, 1.1, NONE 7.1.179, 1.1, NONE 7.1.180, 1.1, NONE 7.1.181, 1.1, NONE 7.1.182, 1.1, NONE 7.1.183, 1.1, NONE 7.1.184, 1.1, NONE 7.1.185, 1.1, NONE 7.1.186, 1.1, NONE 7.1.187, 1.1, NONE 7.1.188, 1.1, NONE 7.1.189, 1.1, NONE 7.1.190, 1.1, NONE 7.1.191, 1.1, NONE 7.1.192, 1.1, NONE 7.1.193, 1.1, NONE 7.1.194, 1.1, NONE 7.1.195, 1.1, NONE 7.1.196, 1.1, NONE 7.1.197, 1.1, NONE 7.1.198, 1.1, NONE 7.1.199, 1.1, NONE 7.1.200, 1.1, NONE 7.1.201, 1.1, NONE 7.1.202, 1.1, NONE 7.1.203, 1.1, NONE 7.1.204, 1.1, NONE 7.1.205, 1.1, NONE 7.1.206, 1.1, NONE 7.1.207, 1.1, NONE 7.1.208, 1.1, NONE 7.1.209, 1.1, NONE 7.1.210, 1.1, NONE 7.1.211, 1.1, NONE 7.1.212, 1.1, NONE 7.1.213, 1.1, NONE 7.1.214, 1.1, NONE 7.1.215, 1.1, NONE 7.1.216, 1.1, NONE 7.1.217, 1.1, NONE 7.1.218, 1.1, NONE 7.1.219, 1.1, NONE 7.1.220, 1.1, NONE 7.1.221, 1.1, NONE 7.1.222, 1.1, NONE 7.1.223, 1.1, NONE 7.1.224, 1.1, NONE 7.1.225, 1.1, NONE 7.1.226, 1.1, NONE 7.1.227, 1.1, NONE 7.1.228, 1.1, NONE 7.1.229, 1.1, NONE 7.1.230, 1.1, NONE 7.1.231, 1.1, NONE 7.1.232, 1.1, NONE 7.1.233, 1.1, NONE 7.1.234, 1.1, NONE 7.1.235, 1.1, NONE 7.1.236, 1.1, NONE 7.1.237, 1.1, NONE 7.1.238, 1.1, NONE 7.1.239, 1.1, NONE 7.1.240, 1.1, NONE 7.1.241, 1.1, NONE 7.1.242, 1.1, NONE 7.1.243, 1.1, NONE 7.1.244, 1.1, NONE 7.1.245, 1.1, NONE 7.1.246, 1.1, NONE 7.1.247, 1.1, NONE 7.1.248, 1.1, NONE 7.1.249, 1.1, NONE 7.1.250, 1.1, NONE 7.1.251, 1.1, NONE 7.1.252, 1.1, NONE 7.1.253, 1.1, NONE 7.1.254, 1.1, NONE 7.1.255, 1.1, NONE 7.1.256, 1.1, NONE 7.1.257, 1.1, NONE 7.1.258, 1.1, NONE 7.1.259, 1.1, NONE 7.1.260, 1.1, NONE 7.1.261, 1.1, NONE 7.1.262, 1.1, NONE 7.1.263, 1.1, NONE 7.1.264, 1.1, NONE 7.1.265, 1.1, NONE 7.1.266, 1.1, NONE 7.1.267, 1.1, NONE 7.1.268, 1.1, NONE 7.1.269, 1.1, NONE 7.1.270, 1.1, NONE 7.1.271, 1.1, NONE 7.1.272, 1.1, NONE 7.1.273, 1.1, NONE 7.1.274, 1.1, NONE 7.1.275, 1.1, NONE 7.1.276, 1.1, NONE 7.1.277, 1.1, NONE 7.1.278, 1.1, NONE 7.1.279, 1.1, NONE 7.1.280, 1.1, NONE 7.1.281, 1.1, NONE 7.1.282, 1.1, NONE 7.1.283, 1.1, NONE 7.1.284, 1.1, NONE 7.1.285, 1.1, NONE 7.1.286, 1.1, NONE 7.1.287, 1.1, NONE 7.1.288, 1.1, NONE 7.1.289, 1.1, NONE 7.1.290, 1.1, NONE 7.1.291, 1.1, NONE 7.1.292, 1.1, NONE 7.1.293, 1.1, NONE vim-6.4-cvim.patch, 1.2, NONE vim-6.4-lib64.patch, 1.1, NONE vim-7.0-fstabsyntax.patch, 1.4, NONE vim-7.0-vimspelltypo.patch, 1.1, NONE vim-7.1-ada.patch, 1.3, NONE vim-7.1-erlang.patch, 1.1, NONE vim-selinux.patch, 1.3, NONE vim-selinux2.patch, 1.1, NONE
Karsten Hopp
karsten at fedoraproject.org
Mon Dec 1 15:06:53 UTC 2008
Author: karsten
Update of /cvs/extras/rpms/vim/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3587
Modified Files:
.cvsignore README.patches sources vim.spec
Added Files:
7.2.001 7.2.002 7.2.003 7.2.004 7.2.005 7.2.006 7.2.007
7.2.008 7.2.009 7.2.010 7.2.011 7.2.012 7.2.013 7.2.014
7.2.015 7.2.016 7.2.017 7.2.018 7.2.019 7.2.020 7.2.021
7.2.022 7.2.023 7.2.024 7.2.025 7.2.026 7.2.027 7.2.028
7.2.029 7.2.030 7.2.031 7.2.032 7.2.033 7.2.034 7.2.035
7.2.036 7.2.037 7.2.038 7.2.039 7.2.040 7.2.041 7.2.042
7.2.043 7.2.044 7.2.045 7.2.046 7.2.047 7.2.048 7.2.049
7.2.050 7.2.051 7.2.052 7.2.053 7.2.054 7.2.055 7.2.056
7.2.057 7.2.058 7.2.059 7.2.060 filetype.vim gzip.vim
netrw.vim netrwFileHandlers.vim netrwPlugin.vim
netrwSettings.vim tar.vim vim-7.1-lib64.patch
vim-7.2-fstabsyntax.patch zip.vim
Removed Files:
7.1.001 7.1.002 7.1.003 7.1.004 7.1.005 7.1.006 7.1.007
7.1.008 7.1.009 7.1.010 7.1.011 7.1.012 7.1.013 7.1.014
7.1.015 7.1.016 7.1.017 7.1.018 7.1.019 7.1.020 7.1.021
7.1.022 7.1.023 7.1.024 7.1.025 7.1.026 7.1.027 7.1.028
7.1.029 7.1.030 7.1.031 7.1.032 7.1.033 7.1.034 7.1.035
7.1.036 7.1.037 7.1.038 7.1.039 7.1.040 7.1.041 7.1.042
7.1.043 7.1.044 7.1.045 7.1.046 7.1.047 7.1.048 7.1.049
7.1.050 7.1.051 7.1.052 7.1.053 7.1.054 7.1.055 7.1.056
7.1.057 7.1.058 7.1.059 7.1.060 7.1.061 7.1.062 7.1.063
7.1.064 7.1.065 7.1.066 7.1.067 7.1.068 7.1.069 7.1.070
7.1.071 7.1.072 7.1.073 7.1.074 7.1.075 7.1.076 7.1.077
7.1.078 7.1.079 7.1.080 7.1.081 7.1.082 7.1.083 7.1.084
7.1.085 7.1.086 7.1.087 7.1.088 7.1.089 7.1.090 7.1.091
7.1.092 7.1.093 7.1.094 7.1.095 7.1.096 7.1.097 7.1.098
7.1.099 7.1.100 7.1.101 7.1.102 7.1.103 7.1.104 7.1.105
7.1.106 7.1.107 7.1.108 7.1.109 7.1.110 7.1.111 7.1.112
7.1.113 7.1.114 7.1.115 7.1.116 7.1.117 7.1.118 7.1.119
7.1.120 7.1.121 7.1.122 7.1.123 7.1.124 7.1.125 7.1.126
7.1.127 7.1.128 7.1.129 7.1.130 7.1.131 7.1.132 7.1.133
7.1.134 7.1.135 7.1.136 7.1.137 7.1.138 7.1.139 7.1.140
7.1.141 7.1.142 7.1.143 7.1.144 7.1.145 7.1.146 7.1.147
7.1.148 7.1.149 7.1.150 7.1.151 7.1.152 7.1.153 7.1.154
7.1.155 7.1.156 7.1.157 7.1.158 7.1.159 7.1.160 7.1.161
7.1.162 7.1.163 7.1.164 7.1.165 7.1.166 7.1.167 7.1.168
7.1.169 7.1.170 7.1.171 7.1.172 7.1.173 7.1.174 7.1.175
7.1.176 7.1.177 7.1.178 7.1.179 7.1.180 7.1.181 7.1.182
7.1.183 7.1.184 7.1.185 7.1.186 7.1.187 7.1.188 7.1.189
7.1.190 7.1.191 7.1.192 7.1.193 7.1.194 7.1.195 7.1.196
7.1.197 7.1.198 7.1.199 7.1.200 7.1.201 7.1.202 7.1.203
7.1.204 7.1.205 7.1.206 7.1.207 7.1.208 7.1.209 7.1.210
7.1.211 7.1.212 7.1.213 7.1.214 7.1.215 7.1.216 7.1.217
7.1.218 7.1.219 7.1.220 7.1.221 7.1.222 7.1.223 7.1.224
7.1.225 7.1.226 7.1.227 7.1.228 7.1.229 7.1.230 7.1.231
7.1.232 7.1.233 7.1.234 7.1.235 7.1.236 7.1.237 7.1.238
7.1.239 7.1.240 7.1.241 7.1.242 7.1.243 7.1.244 7.1.245
7.1.246 7.1.247 7.1.248 7.1.249 7.1.250 7.1.251 7.1.252
7.1.253 7.1.254 7.1.255 7.1.256 7.1.257 7.1.258 7.1.259
7.1.260 7.1.261 7.1.262 7.1.263 7.1.264 7.1.265 7.1.266
7.1.267 7.1.268 7.1.269 7.1.270 7.1.271 7.1.272 7.1.273
7.1.274 7.1.275 7.1.276 7.1.277 7.1.278 7.1.279 7.1.280
7.1.281 7.1.282 7.1.283 7.1.284 7.1.285 7.1.286 7.1.287
7.1.288 7.1.289 7.1.290 7.1.291 7.1.292 7.1.293
vim-6.4-cvim.patch vim-6.4-lib64.patch
vim-7.0-fstabsyntax.patch vim-7.0-vimspelltypo.patch
vim-7.1-ada.patch vim-7.1-erlang.patch vim-selinux.patch
vim-selinux2.patch
Log Message:
update to vim-7.2 patchlevel 60
--- NEW FILE 7.2.001 ---
To: vim-dev at vim.org
Subject: Patch 7.2.001
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.001
Problem: Mac: pseudo-ttys don't work properly on Leopard, resulting in the
shell not to have a prompt, CTRL-C not working, etc.
Solution: Don't use SVR4 compatible ptys, even though they are detected.
(Ben Schmidt)
Files: src/pty.c
*** ../vim-7.2.000/src/pty.c Wed Aug 6 19:04:29 2008
--- src/pty.c Fri Aug 15 04:00:34 2008
***************
*** 270,278 ****
}
#endif
! #if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux)
! /* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! */
#define PTY_DONE
int
OpenPTY(ttyn)
--- 270,279 ----
}
#endif
! #if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) && !defined(MACOS_X)
! /* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work!
! * Same for Mac OS X Leopard. */
#define PTY_DONE
int
OpenPTY(ttyn)
*** ../vim-7.2.000/src/version.c Sat Aug 9 19:37:37 2008
--- src/version.c Sun Aug 17 22:56:25 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 1,
/**/
--
ARTHUR: Now stand aside worthy adversary.
BLACK KNIGHT: (Glancing at his shoulder) 'Tis but a scratch.
ARTHUR: A scratch? Your arm's off.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.002 ---
To: vim-dev at vim.org
Subject: Patch 7.2.002
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.002
Problem: Leaking memory when displaying menus.
Solution: Free allocated memory. (Dominique Pelle)
Files: src/menu.c
*** ../vim-7.2.001/src/menu.c Wed Jun 25 00:19:17 2008
--- src/menu.c Sat Aug 16 05:38:45 2008
***************
*** 1120,1125 ****
--- 1120,1126 ----
parent = menu;
menu = menu->children;
}
+ vim_free(path_name);
/* Now we have found the matching menu, and we list the mappings */
/* Highlight title */
*** ../vim-7.2.001/src/version.c Sun Aug 17 23:01:21 2008
--- src/version.c Sun Aug 17 23:42:53 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 2,
/**/
--
ARTHUR: You are indeed brave Sir knight, but the fight is mine.
BLACK KNIGHT: Had enough?
ARTHUR: You stupid bastard. You havn't got any arms left.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.003 ---
To: vim-dev at vim.org
Subject: Patch 7.2.003
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.003
Problem: Typo in translated message. Message not translated.
Solution: Correct spelling. Add _(). (Dominique Pelle)
Files: src/spell.c, src/version.c
*** ../vim-7.2.002/src/spell.c Tue Jun 24 22:21:31 2008
--- src/spell.c Sun Aug 10 12:51:38 2008
***************
*** 77,83 ****
/*
* Do the opposite: based on a maximum end score and a known sound score,
! * compute the the maximum word score that can be used.
*/
#define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3)
--- 77,83 ----
/*
* Do the opposite: based on a maximum end score and a known sound score,
! * compute the maximum word score that can be used.
*/
#define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3)
***************
*** 625,631 ****
/* TRUE if a word appears in the list of banned words. */
#define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word)))
! /* Number of suggestions kept when cleaning up. we need to keep more than
* what is displayed, because when rescore_suggestions() is called the score
* may change and wrong suggestions may be removed later. */
#define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20)
--- 625,631 ----
/* TRUE if a word appears in the list of banned words. */
#define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word)))
! /* Number of suggestions kept when cleaning up. We need to keep more than
* what is displayed, because when rescore_suggestions() is called the score
* may change and wrong suggestions may be removed later. */
#define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20)
***************
*** 5980,5986 ****
else if (spin->si_newprefID == 0 || spin->si_newprefID == 127)
MSG(_("Too many compound flags"));
else
! MSG(_("Too many posponed prefixes and/or compound flags"));
}
if (syllable != NULL)
--- 5980,5986 ----
else if (spin->si_newprefID == 0 || spin->si_newprefID == 127)
MSG(_("Too many compound flags"));
else
! MSG(_("Too many postponed prefixes and/or compound flags"));
}
if (syllable != NULL)
*** ../vim-7.2.002/src/version.c Sun Aug 17 23:43:53 2008
--- src/version.c Mon Aug 25 04:06:52 2008
***************
*** 790,796 ****
MSG_PUTS(_("\nRISC OS version"));
#endif
#ifdef VMS
! MSG_PUTS("\nOpenVMS version");
# ifdef HAVE_PATHDEF
if (*compiled_arch != NUL)
{
--- 792,798 ----
MSG_PUTS(_("\nRISC OS version"));
#endif
#ifdef VMS
! MSG_PUTS(_("\nOpenVMS version"));
# ifdef HAVE_PATHDEF
if (*compiled_arch != NUL)
{
*** ../vim-7.2.002/src/version.c Sun Aug 17 23:43:53 2008
--- src/version.c Mon Aug 25 04:06:52 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 3,
/**/
--
I learned the customs and mannerisms of engineers by observing them, much the
way Jane Goodall learned about the great apes, but without the hassle of
grooming.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.004 ---
To: vim-dev at vim.org
Subject: Patch 7.2.004
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.004
Problem: Cscope help message is not translated.
Solution: Put it in _(). (Dominique Pelle)
Files: src/if_cscope.c, src/if_cscope.h
*** ../vim-7.2.003/src/if_cscope.c Tue Jun 24 23:52:06 2008
--- src/if_cscope.c Mon Aug 25 04:34:19 2008
***************
*** 74,80 ****
{ "add", cs_add,
N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 },
{ "find", cs_find,
! N_("Query for a pattern"), FIND_USAGE, 1 },
{ "help", cs_help,
N_("Show this message"), "help", 0 },
{ "kill", cs_kill,
--- 74,80 ----
{ "add", cs_add,
N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 },
{ "find", cs_find,
! N_("Query for a pattern"), "find c|d|e|f|g|i|s|t name", 1 },
{ "help", cs_help,
N_("Show this message"), "help", 0 },
{ "kill", cs_kill,
***************
*** 1180,1186 ****
(void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"),
cmdp->name, _(cmdp->help), cmdp->usage);
if (strcmp(cmdp->name, "find") == 0)
! MSG_PUTS(FIND_HELP);
cmdp++;
}
--- 1180,1195 ----
(void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"),
cmdp->name, _(cmdp->help), cmdp->usage);
if (strcmp(cmdp->name, "find") == 0)
! MSG_PUTS(_("\n"
! " c: Find functions calling this function\n"
! " d: Find functions called by this function\n"
! " e: Find this egrep pattern\n"
! " f: Find this file\n"
! " g: Find this definition\n"
! " i: Find files #including this file\n"
! " s: Find this C symbol\n"
! " t: Find assignments to\n"));
!
cmdp++;
}
*** ../vim-7.2.003/src/if_cscope.h Thu Sep 6 17:38:58 2007
--- src/if_cscope.h Mon Aug 25 04:34:17 2008
***************
*** 42,58 ****
* f 7name Find this file
* i 8name Find files #including this file
*/
- #define FIND_USAGE "find c|d|e|f|g|i|s|t name"
- #define FIND_HELP "\n\
- c: Find functions calling this function\n\
- d: Find functions called by this function\n\
- e: Find this egrep pattern\n\
- f: Find this file\n\
- g: Find this definition\n\
- i: Find files #including this file\n\
- s: Find this C symbol\n\
- t: Find assignments to\n"
-
typedef struct {
char * name;
--- 42,47 ----
*** ../vim-7.2.003/src/version.c Mon Aug 25 04:12:38 2008
--- src/version.c Mon Aug 25 04:29:53 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 4,
/**/
--
If someone questions your market projections, simply point out that your
target market is "People who are nuts" and "People who will buy any damn
thing". Nobody is going to tell you there aren't enough of those people
to go around.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.005 ---
To: vim-dev at vim.org
Subject: Patch 7.2.005
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.005
Problem: A few problems when profiling. Using flag pointer instead of flag
value. Allocating zero bytes. Not freeing used memory.
Solution: Remove wrong '&' characters. Skip dumping when there is nothing
to dump. Free used memory. (Dominique Pelle)
Files: src/eval.c
*** ../vim-7.2.004/src/eval.c Fri Aug 8 12:36:31 2008
--- src/eval.c Mon Aug 25 04:40:11 2008
***************
*** 3657,3664 ****
}
/*
! * Return TRUE if typeval "tv" is locked: Either tha value is locked itself or
! * it refers to a List or Dictionary that is locked.
*/
static int
tv_islocked(tv)
--- 3657,3664 ----
}
/*
! * Return TRUE if typeval "tv" is locked: Either that value is locked itself
! * or it refers to a List or Dictionary that is locked.
*/
static int
tv_islocked(tv)
***************
*** 15838,15847 ****
if (res == FAIL)
res = ITEM_COMPARE_FAIL;
else
- /* return value has wrong type */
res = get_tv_number_chk(&rettv, &item_compare_func_err);
if (item_compare_func_err)
! res = ITEM_COMPARE_FAIL;
clear_tv(&rettv);
return res;
}
--- 15838,15846 ----
if (res == FAIL)
res = ITEM_COMPARE_FAIL;
else
res = get_tv_number_chk(&rettv, &item_compare_func_err);
if (item_compare_func_err)
! res = ITEM_COMPARE_FAIL; /* return value has wrong type */
clear_tv(&rettv);
return res;
}
***************
*** 20590,20595 ****
--- 20589,20597 ----
int st_len = 0;
todo = (int)func_hashtab.ht_used;
+ if (todo == 0)
+ return; /* nothing to dump */
+
sorttab = (ufunc_T **)alloc((unsigned)(sizeof(ufunc_T) * todo));
for (hi = func_hashtab.ht_array; todo > 0; ++hi)
***************
*** 20638,20643 ****
--- 20640,20647 ----
prof_self_cmp);
prof_sort_list(fd, sorttab, st_len, "SELF", TRUE);
}
+
+ vim_free(sorttab);
}
static void
***************
*** 21204,21210 ****
if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL))
func_do_profile(fp);
if (fp->uf_profiling
! || (fc.caller != NULL && &fc.caller->func->uf_profiling))
{
++fp->uf_tm_count;
profile_start(&call_start);
--- 21208,21214 ----
if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL))
func_do_profile(fp);
if (fp->uf_profiling
! || (fc.caller != NULL && fc.caller->func->uf_profiling))
{
++fp->uf_tm_count;
profile_start(&call_start);
***************
*** 21235,21247 ****
#ifdef FEAT_PROFILE
if (do_profiling == PROF_YES && (fp->uf_profiling
! || (fc.caller != NULL && &fc.caller->func->uf_profiling)))
{
profile_end(&call_start);
profile_sub_wait(&wait_start, &call_start);
profile_add(&fp->uf_tm_total, &call_start);
profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children);
! if (fc.caller != NULL && &fc.caller->func->uf_profiling)
{
profile_add(&fc.caller->func->uf_tm_children, &call_start);
profile_add(&fc.caller->func->uf_tml_children, &call_start);
--- 21239,21251 ----
#ifdef FEAT_PROFILE
if (do_profiling == PROF_YES && (fp->uf_profiling
! || (fc.caller != NULL && fc.caller->func->uf_profiling)))
{
profile_end(&call_start);
profile_sub_wait(&wait_start, &call_start);
profile_add(&fp->uf_tm_total, &call_start);
profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children);
! if (fc.caller != NULL && fc.caller->func->uf_profiling)
{
profile_add(&fc.caller->func->uf_tm_children, &call_start);
profile_add(&fc.caller->func->uf_tml_children, &call_start);
*** ../vim-7.2.004/src/version.c Mon Aug 25 04:35:13 2008
--- src/version.c Mon Aug 25 04:46:44 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 5,
/**/
--
The process for understanding customers primarily involves sitting around with
other marketing people and talking about what you would to if you were dumb
enough to be a customer.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.006 ---
To: vim-dev at vim.org
Subject: Patch 7.2.006
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.006
Problem: HTML files are not recognized by contents.
Solution: Add a rule to the scripts file. (Nico Weber)
Files: runtime/scripts.vim
*** ../vim-7.2.005/runtime/scripts.vim Sat Aug 9 19:37:09 2008
--- runtime/scripts.vim Sat Aug 16 04:05:34 2008
***************
*** 234,239 ****
--- 234,243 ----
elseif s:line1 =~ '\<DTD\s\+XHTML\s'
set ft=xhtml
+ " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
+ elseif s:line1 =~? '\<DOCTYPE\s\+html\>'
+ set ft=html
+
" PDF
elseif s:line1 =~ '^%PDF-'
set ft=pdf
*** ../vim-7.2.005/src/version.c Mon Aug 25 04:48:21 2008
--- src/version.c Mon Aug 25 05:02:34 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 6,
/**/
--
Never enter the boss's office unless it's absolutely necessary. Every boss
saves one corner of the desk for useless assignments that are doled out like
Halloween candy to each visitor.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.007 ---
To: vim-dev at vim.org
Subject: Patch 7.2.007 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.007 (extra)
Problem: Minor issues for VMS.
Solution: Minor fixes for VMS. Add float support. (Zoltan Arpadffy)
Files: runtime/doc/os_vms.txt, src/os_vms_conf.h, src/Make_vms.mms,
src/testdir/Make_vms.mms, src/testdir/test30.in,
src/testdir/test54.in
*** ../vim-7.2.006/runtime/doc/os_vms.txt Sat Aug 9 19:36:50 2008
--- runtime/doc/os_vms.txt Tue Aug 19 06:29:31 2008
***************
*** 1,4 ****
! *os_vms.txt* For Vim version 7.2. Last change: 2006 Nov 18
VIM REFERENCE MANUAL
--- 1,4 ----
! *os_vms.txt* For Vim version 7.2. Last change: 2008 Aug 19
VIM REFERENCE MANUAL
***************
*** 312,318 ****
8. Useful notes *vms-notes*
! 8.1 backspace/delete
8.2 Filters
8.3 VMS file version numbers
8.4 Directory conversion
--- 312,318 ----
8. Useful notes *vms-notes*
! 8.1 Backspace/delete
8.2 Filters
8.3 VMS file version numbers
8.4 Directory conversion
***************
*** 326,333 ****
8.12 diff-mode
8.13 Allow '$' in C keywords
8.14 VIMTUTOR for beginners
! 8.1 backspace/delete
There are backspace/delete key inconsistencies with VMS.
:fixdel doesn't do the trick, but the solution is: >
--- 326,335 ----
8.12 diff-mode
8.13 Allow '$' in C keywords
8.14 VIMTUTOR for beginners
+ 8.15 Slow start in console mode issue
+ 8.16 Common VIM directory - different architectures
! 8.1 Backspace/delete
There are backspace/delete key inconsistencies with VMS.
:fixdel doesn't do the trick, but the solution is: >
***************
*** 663,674 ****
(Thomas.R.Wyant III, Vim 6.1)
==============================================================================
9. VMS related changes *vms-changes*
! Version 7
- Improved low level char input (affects just console mode)
Version 6.4 (2005 Oct 15)
- GTKLIB and Vim build on IA64
--- 665,794 ----
(Thomas.R.Wyant III, Vim 6.1)
+ 8.14 Slow start in console mode issue
+
+ As GUI/GTK Vim works equally well in console mode, many administartors
+ deploy those executables system wide.
+ Unfortunately, on a remote slow connections GUI/GTK executables behave rather
+ slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
+
+ Luckily, there is a simple solution for that. Administrators need to deploy
+ both GUI/GTK build and just console build executables, like below: >
+
+ |- vim72
+ |----- doc
+ |----- syntax
+ vimrc (system rc files)
+ gvimrc
+ gvim.exe (the remaned GUI or GTK built vim.exe)
+ vim.exe (the console only executable)
+
+ Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
+
+ $ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is
+ $ vi*m :== mcr VIM:VIM.EXE
+ $ gvi*m :== mcr VIM:GVIM.EXE
+ $ ! or you can try to spawn with
+ $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
+
+
+ Like this, users that do not have X environment and want to use Vim just in
+ console mode can avoid performance problems.
+
+ (Zoltan Arpadffy, Vim 7.2)
+
+ 8.15 Common VIM directory - different architectures
+
+ In a cluster that contains nodes with different architectures like below:
+
+ $show cluster
+ View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31
+ +---------------------------------+
+ ¦ SYSTEMS ¦ MEMBERS ¦
+ +-----------------------+---------¦
+ ¦ NODE ¦ SOFTWARE ¦ STATUS ¦
+ +--------+--------------+---------¦
+ ¦ TOR ¦ VMS V7.3-2 ¦ MEMBER ¦
+ ¦ TITAN2 ¦ VMS V8.3 ¦ MEMBER ¦
+ ¦ ODIN ¦ VMS V7.3-2 ¦ MEMBER ¦
+ +---------------------------------+
+
+ It is convinient to have a common VIM directory but execute different
+ executables.
+ There are more solutions for this problem:
+
+ solution 1. all executables in the same directory with different names
+ This is easily done with the following script that can be added
+ to the login.com or sylogin.com: >
+
+ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
+ $ then
+ $ say "VAX platform"
+ $ vi*m:== mcr vim:VIM.EXE_VAX
+ $ endif
+ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
+ $ then
+ $ say "ALPHA platform"
+ $ vi*m :== mcr vim:VIM.EXE_AXP
+ $ endif
+ $ if f$getsyi("ARCH_NAME") .eqs. "IA64"
+ $ then
+ $ say "IA64 platform"
+ $ vi*m :== mcr vim:VIM.EXE_IA64
+ $ endif
+
+ solution 2. different directories: >
+
+ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
+ $ then
+ $ say "VAX platform"
+ $ define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables
+ $ endif
+ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
+ $ then
+ $ say "ALPHA platform"
+ $ define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables
+ $ endif
+ $ if f$getsyi("ARCH_NAME") .eqs. "IA64"
+ $ then
+ $ say "IA64 platform"
+ $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables
+ $ endif
+ $! VIMRUNTIME must be defined in order to find runtime files
+ $ define/nolog VIMRUNTIME RF10:[UTIL.VIM72]
+
+ A good examle for this approach is the [GNU]gnu_tools.com script from GNU_TOOLS.ZIP
+ package downloadable from http://www.polarhome.com/vim/
+
+ (Zoltan Arpadffy, Vim 7.2)
+
==============================================================================
9. VMS related changes *vms-changes*
! Recent changes
! - The following plugins are included into VMS runtime:
! genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
! bufexplorer 7.1.7, taglist 4.5
! - minor changes in vimrc (just in VMS runtime)
! - make_vms.mms - HUGE model is the default
! - [TESTDIR]make_vms.mms include as many tests possible
! - modify test30 and test54 for VMS
! - enable FLOAT feature in VMS port
! - os_vms.txt updated
!
! Version 7.2 (2008 Aug 9)
! - VCF files write corrected
! - CTAGS 5.7 included
! - corrected make_vms.mms (on VAX gave syntax error)
!
! Version 7.1 (2007 Jun 15)
! - create TAGS file from menu
!
! Version 7 (2006 May 8)
- Improved low level char input (affects just console mode)
+ - Fixed plugin bug
+ - CTAGS 5.6 included
Version 6.4 (2005 Oct 15)
- GTKLIB and Vim build on IA64
***************
*** 806,811 ****
--- 926,932 ----
OpenVMS documentation and executables are maintained by:
Zoltan Arpadffy <arpadffy at polarhome.com>
+ OpenVMS Vim page: http://www.polarhome.com/vim/
This document uses parts and remarks from earlier authors and contributors
of OS_VMS.TXT:
*** ../vim-7.2.006/src/os_vms_conf.h Thu May 10 19:26:17 2007
--- src/os_vms_conf.h Sat Aug 16 05:09:17 2008
***************
*** 114,119 ****
--- 114,121 ----
#define HAVE_PUTENV
#define HAVE_SETENV
#define HAVE_SETJMP_H
+ #define HAVE_MATH_H
+ #define HAVE_FLOAT_FUNCS
#undef HAVE_DIRENT_H
#undef HAVE_SYS_NDIR_H
*** ../vim-7.2.006/src/Make_vms.mms Mon Oct 29 22:38:54 2007
--- src/Make_vms.mms Sat Aug 16 05:17:41 2008
***************
*** 2,8 ****
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <arpadffy at polarhome.com>
! # Last change: 2007 Oct 22
#
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
# with MMS and MMK
--- 2,8 ----
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <arpadffy at polarhome.com>
! # Last change: 2008 Aug 16
#
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
# with MMS and MMK
***************
*** 36,42 ****
# BIG - Many features enabled, as rich as possible. (default)
# HUGE - All possible featues enabled.
# Please select one of these alternatives above.
! MODEL = BIG
# GUI or terminal mode executable.
# Comment out if you want just the character terminal mode only.
--- 36,42 ----
# BIG - Many features enabled, as rich as possible. (default)
# HUGE - All possible featues enabled.
# Please select one of these alternatives above.
! MODEL = HUGE
# GUI or terminal mode executable.
# Comment out if you want just the character terminal mode only.
*** ../vim-7.2.006/src/testdir/Make_vms.mms Wed Jun 25 00:34:23 2008
--- src/testdir/Make_vms.mms Tue Aug 19 06:28:07 2008
***************
*** 4,12 ****
# Authors: Zoltan Arpadffy, <arpadffy at polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi at mailbox.hu>
#
! # Last change: 2008 Jun 19
#
! # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX.
# Edit the lines in the Configuration section below to select.
#
# Execute with:
--- 4,12 ----
# Authors: Zoltan Arpadffy, <arpadffy at polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi at mailbox.hu>
#
! # Last change: 2008 Aug 19
#
! # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
#
# Execute with:
***************
*** 32,37 ****
--- 32,46 ----
# and directory handling.
# WANT_UNIX = YES
+ # Comment out if you want to run Win32 specific tests as well, but please
+ # be aware, that on OpenVMS will fail, because of cat, rm, etc commands
+ # and directory handling.
+ # WANT_WIN = YES
+
+ # Comment out if you want to run spell checker tests.
+ # They fail because VMS does not support file names.
+ # WANT_SPELL = YES
+
# Comment out if you have gzip on your system
# HAVE_GZIP = YES
***************
*** 53,64 ****
test13.out test14.out test15.out test17.out \
test18.out test19.out test20.out test21.out test22.out \
test23.out test24.out test26.out \
! test28.out test29.out test31.out test32.out \
test33.out test34.out test35.out test36.out test37.out \
test38.out test39.out test40.out test41.out test42.out \
test43.out test44.out test45.out test46.out \
test48.out test51.out test53.out test54.out test55.out \
! test56.out test57.out test58.out test59.out test60.out \
test61.out test62.out test63.out test64.out test65.out
.IFDEF WANT_GUI
--- 62,73 ----
test13.out test14.out test15.out test17.out \
test18.out test19.out test20.out test21.out test22.out \
test23.out test24.out test26.out \
! test28.out test29.out test30.out test31.out test32.out \
test33.out test34.out test35.out test36.out test37.out \
test38.out test39.out test40.out test41.out test42.out \
test43.out test44.out test45.out test46.out \
test48.out test51.out test53.out test54.out test55.out \
! test56.out test57.out test60.out \
test61.out test62.out test63.out test64.out test65.out
.IFDEF WANT_GUI
***************
*** 67,73 ****
.ENDIF
.IFDEF WANT_UNIX
! SCRIPT_UNIX = test10.out test12.out test25.out test27.out test30.out test49.out
.ENDIF
.IFDEF HAVE_GZIP
--- 76,90 ----
.ENDIF
.IFDEF WANT_UNIX
! SCRIPT_UNIX = test10.out test12.out test25.out test27.out test49.out
! .ENDIF
!
! .IFDEF WANT_WIN
! SCRIPT_WIN = test50.out test52.out
! .ENDIF
!
! .IFDEF WANT_SPELL
! SCRIPT_SPELL = test58.out test59.out
.ENDIF
.IFDEF HAVE_GZIP
***************
*** 84,94 ****
-@ write sys$output " "$*" "
-@ write sys$output "-----------------------------------------------"
-@ create/term/wait mcr $(VIMPROG) $(GUI_OPTION) -u vms.vim --noplugin -s dotest.in $*.in
! -@ if "''F$SEARCH("test.out.*")'" .NES. "" then differences test.out $*.ok;
-@ if "''F$SEARCH("test.out.*")'" .NES. "" then rename test.out $*.out
-@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.*
! all : clean nolog $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_GZIP) $(SCRIPT_GDIFF)
-@ write sys$output " "
-@ write sys$output "-----------------------------------------------"
-@ write sys$output " All done"
--- 101,111 ----
-@ write sys$output " "$*" "
-@ write sys$output "-----------------------------------------------"
-@ create/term/wait mcr $(VIMPROG) $(GUI_OPTION) -u vms.vim --noplugin -s dotest.in $*.in
! -@ if "''F$SEARCH("test.out.*")'" .NES. "" then differences /par test.out $*.ok;
-@ if "''F$SEARCH("test.out.*")'" .NES. "" then rename test.out $*.out
-@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.*
! all : clean nolog $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_GZIP) $(SCRIPT_GDIFF)
-@ write sys$output " "
-@ write sys$output "-----------------------------------------------"
-@ write sys$output " All done"
***************
*** 113,118 ****
--- 130,137 ----
-@ write sys$output "MAKE_VMS.MMS options:"
-@ write sys$output " WANT_GUI = ""$(WANT_GUI)"" "
-@ write sys$output " WANT_UNIX = ""$(WANT_UNIX)"" "
+ -@ write sys$output " WANT_WIN = ""$(WANT_WIN)"" "
+ -@ write sys$output " WANT_SPELL= ""$(WANT_SPELL)"" "
-@ write sys$output " HAVE_GZIP = ""$(HAVE_GZIP)"" "
-@ write sys$output " HAVE_GDIFF= ""$(HAVE_GDIFF)"" "
-@ write sys$output "Default vimrc file is VMS.VIM:
***************
*** 122,126 ****
--- 141,153 ----
clean :
-@ if "''F$SEARCH("*.out")'" .NES. "" then delete/noconfirm/nolog *.out.*
-@ if "''F$SEARCH("test.log")'" .NES. "" then delete/noconfirm/nolog test.log.*
+ -@ if "''F$SEARCH("test.ok")'" .NES. "" then delete/noconfirm/nolog test.ok.*
-@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.*
-@ if "''F$SEARCH("*.*_sw*")'" .NES. "" then delete/noconfirm/nolog *.*_sw*.*
+ -@ if "''F$SEARCH("*.failed")'" .NES. "" then delete/noconfirm/nolog *.failed.*
+ -@ if "''F$SEARCH("*.rej")'" .NES. "" then delete/noconfirm/nolog *.rej.*
+ -@ if "''F$SEARCH("tiny.vim")'" .NES. "" then delete/noconfirm/nolog tiny.vim.*
+ -@ if "''F$SEARCH("small.vim")'" .NES. "" then delete/noconfirm/nolog small.vim.*
+ -@ if "''F$SEARCH("mbyte.vim")'" .NES. "" then delete/noconfirm/nolog mbyte.vim.*
+ -@ if "''F$SEARCH("viminfo.*")'" .NES. "" then delete/noconfirm/nolog viminfo.*.*
+
*** ../vim-7.2.006/src/testdir/test30.in Sun Jul 13 19:17:14 2008
--- src/testdir/test30.in Sat Aug 16 04:59:37 2008
***************
*** 24,33 ****
:set nobin eol
:bwipe XXUnix XXDos XXMac
:" create mixed format files
! :!cat XXUnix XXDos >XXUxDs
! :!cat XXUnix XXMac >XXUxMac
! :!cat XXDos XXMac >XXDosMac
! :!cat XXUnix XXDos XXMac >XXUxDsMc
:"
:" try reading and writing with 'fileformats' empty
:set fileformat=unix
--- 24,40 ----
:set nobin eol
:bwipe XXUnix XXDos XXMac
:" create mixed format files
! :if has("vms")
! : !copy XXUnix,XXDos XXUxDs.
! : !copy XXUnix,XXMac XXUxMac.
! : !copy XXDos,XXMac XXDosMac.
! : !copy XXUnix,XXDos,XXMac XXUxDsMc.
! :else
! : !cat XXUnix XXDos >XXUxDs
! : !cat XXUnix XXMac >XXUxMac
! : !cat XXDos XXMac >XXDosMac
! : !cat XXUnix XXDos XXMac >XXUxDsMc
! :endif
:"
:" try reading and writing with 'fileformats' empty
:set fileformat=unix
*** ../vim-7.2.006/src/testdir/test54.in Sun Jan 2 12:43:19 2005
--- src/testdir/test54.in Tue Aug 19 06:26:55 2008
***************
*** 3,10 ****
STARTTEST
:so small.vim
:e xx
! :!rm -f test.out
! :au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
:e somefile " here, autocommand for xx shall write test.out
: " but autocommand shall not apply to buffer named <buffer>
:bwipe xx " here, autocommand shall be auto-deleted
--- 3,15 ----
STARTTEST
:so small.vim
:e xx
! :if has("vms")
! : !del test.out.*
! : au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
! :else
! : !rm -f test.out
! : au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
! :endif
:e somefile " here, autocommand for xx shall write test.out
: " but autocommand shall not apply to buffer named <buffer>
:bwipe xx " here, autocommand shall be auto-deleted
*** ../vim-7.2.006/src/version.c Mon Aug 25 05:03:29 2008
--- src/version.c Mon Sep 1 16:46:50 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 7,
/**/
--
How To Keep A Healthy Level Of Insanity:
8. Don't use any punctuation marks.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.008 ---
To: vim-dev at vim.org
Subject: Patch 7.2.008
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.008
Problem: With a BufHidden autocommand that invokes ":bunload" the window
count for a buffer can be wrong. (Bob Hiestand)
Solution: Don't call enter_buffer() when already in that buffer.
Files: src/buffer.c
*** ../vim-7.2.007/src/buffer.c Wed Aug 6 18:32:40 2008
--- src/buffer.c Mon Sep 1 14:25:45 2008
***************
*** 1351,1361 ****
}
}
#ifdef FEAT_AUTOCMD
# ifdef FEAT_EVAL
! /* An autocommand may have deleted buf or aborted the script processing! */
! if (buf_valid(buf) && !aborting())
# else
! if (buf_valid(buf)) /* an autocommand may have deleted buf! */
# endif
#endif
enter_buffer(buf);
--- 1351,1362 ----
}
}
#ifdef FEAT_AUTOCMD
+ /* An autocommand may have deleted "buf", already entered it (e.g., when
+ * it did ":bunload") or aborted the script processing! */
# ifdef FEAT_EVAL
! if (buf_valid(buf) && buf != curbuf && !aborting())
# else
! if (buf_valid(buf) && buf != curbuf)
# endif
#endif
enter_buffer(buf);
*** ../vim-7.2.007/src/version.c Mon Sep 1 16:50:09 2008
--- src/version.c Mon Sep 1 17:31:28 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 8,
/**/
--
If Pacman had affected us as kids we'd be running around in dark rooms,
munching pills and listening to repetitive music.
-- Marcus Brigstocke
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.009 ---
To: vim-dev at vim.org
Subject: Patch 7.2.009
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.009
Problem: Can't compile with Perl 5.10 on MS-Windows. (Cesar Romani)
Solution: Add the Perl_sv_free2 function for dynamic loading. (Dan Sharp)
Files: src/if_perl.xs
*** ../vim-7.2.008/src/if_perl.xs Thu Jul 24 16:24:15 2008
--- src/if_perl.xs Mon Sep 1 14:58:37 2008
***************
*** 136,141 ****
--- 136,144 ----
# define Perl_newXS_flags dll_Perl_newXS_flags
#endif
# define Perl_sv_free dll_Perl_sv_free
+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
+ # define Perl_sv_free2 dll_Perl_sv_free2
+ # endif
# define Perl_sv_isa dll_Perl_sv_isa
# define Perl_sv_magic dll_Perl_sv_magic
# define Perl_sv_setiv dll_Perl_sv_setiv
***************
*** 268,273 ****
--- 271,277 ----
static void (*boot_DynaLoader)_((pTHX_ CV*));
#if (PERL_REVISION == 5) && (PERL_VERSION >= 10)
+ static void (*Perl_sv_free2)(pTHX_ SV*);
static void (*Perl_sys_init3)(int* argc, char*** argv, char*** env);
static void (*Perl_sys_term)(void);
static SV** (*Perl_ISv_ptr)(register PerlInterpreter*);
***************
*** 367,372 ****
--- 371,377 ----
{"Perl_TXpv_ptr", (PERL_PROC*)&Perl_TXpv_ptr},
{"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr},
#else
+ {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2},
{"Perl_sys_init3", (PERL_PROC*)&Perl_sys_init3},
{"Perl_sys_term", (PERL_PROC*)&Perl_sys_term},
{"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr},
*** ../vim-7.2.008/src/version.c Mon Sep 1 17:32:40 2008
--- src/version.c Mon Sep 1 17:55:24 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 9,
/**/
--
How To Keep A Healthy Level Of Insanity:
11. Specify that your drive-through order is "to go".
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.010 ---
To: vim-dev at vim.org
Subject: Patch 7.2.010
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.010
Problem: When using "K" in Visual mode not all characters are properly
escaped. (Ben Schmidt)
Solution: Use a function with the functionality of shellescape(). (Jan
Minar)
Files: src/mbyte.c, src/misc2.c, src/normal.c
*** ../vim-7.2.009/src/mbyte.c Wed Aug 6 18:45:36 2008
--- src/mbyte.c Wed Sep 3 22:34:48 2008
***************
*** 2540,2546 ****
return (int)(p - q);
}
- #if defined(FEAT_EVAL) || defined(PROTO)
/*
* Copy a character from "*fp" to "*tp" and advance the pointers.
*/
--- 2540,2545 ----
***************
*** 2555,2561 ****
*tp += l;
*fp += l;
}
- #endif
/*
* Return the offset from "p" to the first byte of a character. When "p" is
--- 2554,2559 ----
*** ../vim-7.2.009/src/misc2.c Thu Jul 24 20:28:58 2008
--- src/misc2.c Wed Sep 3 22:05:21 2008
***************
*** 1257,1263 ****
return escaped_string;
}
- #if !defined(BACKSLASH_IN_FILENAME) || defined(FEAT_EVAL) || defined(PROTO)
/*
* Return TRUE when 'shell' has "csh" in the tail.
*/
--- 1257,1262 ----
***************
*** 1266,1274 ****
{
return (strstr((char *)gettail(p_sh), "csh") != NULL);
}
- #endif
- #if defined(FEAT_EVAL) || defined(PROTO)
/*
* Escape "string" for use as a shell argument with system().
* This uses single quotes, except when we know we need to use double qoutes
--- 1265,1271 ----
***************
*** 1391,1397 ****
return escaped_string;
}
- #endif
/*
* Like vim_strsave(), but make all characters uppercase.
--- 1388,1393 ----
*** ../vim-7.2.009/src/normal.c Thu Jul 31 22:03:54 2008
--- src/normal.c Sat Sep 6 15:06:07 2008
***************
*** 5469,5474 ****
--- 5469,5479 ----
STRCPY(buf, "he! ");
else
{
+ /* An external command will probably use an argument starting
+ * with "-" as an option. To avoid trouble we skip the "-". */
+ while (*ptr == '-')
+ ++ptr;
+
/* When a count is given, turn it into a range. Is this
* really what we want? */
isman = (STRCMP(kp, "man") == 0);
***************
*** 5511,5547 ****
/*
* Now grab the chars in the identifier
*/
! if (cmdchar == '*')
! aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\");
! else if (cmdchar == '#')
! aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
! else if (cmdchar == 'K' && !kp_help)
! aux_ptr = (char_u *)" \t\\\"|!";
! else
! /* Don't escape spaces and Tabs in a tag with a backslash */
! aux_ptr = (char_u *)"\\|\"";
!
! p = buf + STRLEN(buf);
! while (n-- > 0)
! {
! /* put a backslash before \ and some others */
! if (vim_strchr(aux_ptr, *ptr) != NULL)
! *p++ = '\\';
! #ifdef FEAT_MBYTE
! /* When current byte is a part of multibyte character, copy all bytes
! * of that character. */
! if (has_mbyte)
{
! int i;
! int len = (*mb_ptr2len)(ptr) - 1;
!
! for (i = 0; i < len && n >= 1; ++i, --n)
! *p++ = *ptr++;
}
#endif
! *p++ = *ptr++;
}
- *p = NUL;
/*
* Execute the command.
--- 5516,5572 ----
/*
* Now grab the chars in the identifier
*/
! if (cmdchar == 'K' && !kp_help)
! {
! /* Escape the argument properly for a shell command */
! p = vim_strsave_shellescape(ptr, TRUE);
! if (p == NULL)
{
! vim_free(buf);
! return;
}
+ buf = (char_u *)vim_realloc(buf, STRLEN(buf) + STRLEN(p) + 1);
+ if (buf == NULL)
+ {
+ vim_free(buf);
+ vim_free(p);
+ return;
+ }
+ STRCAT(buf, p);
+ vim_free(p);
+ }
+ else
+ {
+ if (cmdchar == '*')
+ aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\");
+ else if (cmdchar == '#')
+ aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
+ else
+ /* Don't escape spaces and Tabs in a tag with a backslash */
+ aux_ptr = (char_u *)"\\|\"\n*?[";
+
+ p = buf + STRLEN(buf);
+ while (n-- > 0)
+ {
+ /* put a backslash before \ and some others */
+ if (vim_strchr(aux_ptr, *ptr) != NULL)
+ *p++ = '\\';
+ #ifdef FEAT_MBYTE
+ /* When current byte is a part of multibyte character, copy all
+ * bytes of that character. */
+ if (has_mbyte)
+ {
+ int i;
+ int len = (*mb_ptr2len)(ptr) - 1;
+
+ for (i = 0; i < len && n >= 1; ++i, --n)
+ *p++ = *ptr++;
+ }
#endif
! *p++ = *ptr++;
! }
! *p = NUL;
}
/*
* Execute the command.
*** ../vim-7.2.009/src/version.c Mon Sep 1 17:56:05 2008
--- src/version.c Sat Sep 6 16:26:42 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 10,
/**/
--
Q. What happens to programmers when they die?
A: MS-Windows programmers are reinstalled. C++ programmers become undefined,
anyone who refers to them will die as well. Java programmers reincarnate
after being garbage collected.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.011 ---
To: vim-dev at vim.org
Subject: Patch 7.2.011
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.011
Problem: Get an error when inserting a float value from the expression
register.
Solution: Convert the Float to a String automatically in the same place
where a List would be converted to a String.
Files: src/eval.c
*** ../vim-7.2.010/src/eval.c Mon Aug 25 04:48:21 2008
--- src/eval.c Sun Sep 7 13:50:38 2008
***************
*** 1256,1278 ****
/*
* Top level evaluation function, returning a string.
* Return pointer to allocated memory, or NULL for failure.
*/
char_u *
! eval_to_string(arg, nextcmd, dolist)
char_u *arg;
char_u **nextcmd;
! int dolist; /* turn List into sequence of lines */
{
typval_T tv;
char_u *retval;
garray_T ga;
if (eval0(arg, &tv, nextcmd, TRUE) == FAIL)
retval = NULL;
else
{
! if (dolist && tv.v_type == VAR_LIST)
{
ga_init2(&ga, (int)sizeof(char), 80);
if (tv.vval.v_list != NULL)
--- 1256,1281 ----
/*
* Top level evaluation function, returning a string.
+ * When "convert" is TRUE convert a List into a sequence of lines and convert
+ * a Float to a String.
* Return pointer to allocated memory, or NULL for failure.
*/
char_u *
! eval_to_string(arg, nextcmd, convert)
char_u *arg;
char_u **nextcmd;
! int convert;
{
typval_T tv;
char_u *retval;
garray_T ga;
+ char_u numbuf[NUMBUFLEN];
if (eval0(arg, &tv, nextcmd, TRUE) == FAIL)
retval = NULL;
else
{
! if (convert && tv.v_type == VAR_LIST)
{
ga_init2(&ga, (int)sizeof(char), 80);
if (tv.vval.v_list != NULL)
***************
*** 1280,1285 ****
--- 1283,1295 ----
ga_append(&ga, NUL);
retval = (char_u *)ga.ga_data;
}
+ #ifdef FEAT_FLOAT
+ else if (convert && tv.v_type == VAR_FLOAT)
+ {
+ vim_snprintf((char *)numbuf, NUMBUFLEN, "%g", tv.vval.v_float);
+ retval = vim_strsave(numbuf);
+ }
+ #endif
else
retval = vim_strsave(get_tv_string(&tv));
clear_tv(&tv);
*** ../vim-7.2.010/src/version.c Sat Sep 6 16:44:06 2008
--- src/version.c Sun Sep 7 13:52:00 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 11,
/**/
--
hundred-and-one symptoms of being an internet addict:
34. You laugh at people with 14400 baud modems.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.012 ---
To: vim-dev at vim.org
Subject: Patch 7.2.012
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.012
Problem: Compiler warnings when building with startup timing.
Solution: Add type casts.
Files: src/ex_cmds2.c
*** ../vim-7.2.011/src/ex_cmds2.c Sun Jul 13 19:36:09 2008
--- src/ex_cmds2.c Tue Sep 2 11:14:41 2008
***************
*** 3145,3152 ****
verbose_leave();
}
#ifdef STARTUPTIME
! vim_snprintf(IObuff, IOSIZE, "sourcing %s", fname);
! time_msg(IObuff, &tv_start);
time_pop(&tv_rel);
#endif
--- 3145,3152 ----
verbose_leave();
}
#ifdef STARTUPTIME
! vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname);
! time_msg((char *)IObuff, &tv_start);
time_pop(&tv_rel);
#endif
*** ../vim-7.2.011/src/version.c Sun Sep 7 13:54:31 2008
--- src/version.c Sun Sep 7 15:49:00 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 12,
/**/
--
He who laughs last, thinks slowest.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.013 ---
To: vim-dev at vim.org
Subject: Patch 7.2.013
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.013
Problem: While waiting for the X selection Vim consumes a lot of CPU time
and hangs until a response is received.
Solution: Sleep a bit when the selection event hasn't been received yet.
Time out after a couple of seconds to avoid a hang when the
selection owner isn't responding.
Files: src/ui.c
*** ../vim-7.2.012/src/ui.c Mon Jul 14 21:47:49 2008
--- src/ui.c Sun Sep 7 16:54:35 2008
***************
*** 2110,2115 ****
--- 2110,2117 ----
int i;
int nbytes = 0;
char_u *buffer;
+ time_t start_time;
+ int timed_out = FALSE;
for (i =
#ifdef FEAT_MBYTE
***************
*** 2129,2134 ****
--- 2131,2137 ----
case 3: type = text_atom; break;
default: type = XA_STRING;
}
+ success = FALSE;
XtGetSelectionValue(myShell, cbd->sel_atom, type,
clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
***************
*** 2141,2167 ****
* characters, then they will appear before the one that requested the
* paste! Don't worry, we will catch up with any other events later.
*/
for (;;)
{
if (XCheckTypedEvent(dpy, SelectionNotify, &event))
break;
if (XCheckTypedEvent(dpy, SelectionRequest, &event))
/* We may get a SelectionRequest here and if we don't handle
* it we hang. KDE klipper does this, for example. */
XtDispatchEvent(&event);
/* Do we need this? Probably not. */
XSync(dpy, False);
! /* Bernhard Walle solved a slow paste response in an X terminal by
! * adding: usleep(10000); here. */
}
- /* this is where clip_x11_request_selection_cb() is actually called */
- XtDispatchEvent(&event);
-
if (success)
return;
}
/* Final fallback position - use the X CUT_BUFFER0 store */
--- 2144,2189 ----
* characters, then they will appear before the one that requested the
* paste! Don't worry, we will catch up with any other events later.
*/
+ start_time = time(NULL);
for (;;)
{
if (XCheckTypedEvent(dpy, SelectionNotify, &event))
+ {
+ /* this is where clip_x11_request_selection_cb() is actually
+ * called */
+ XtDispatchEvent(&event);
break;
+ }
if (XCheckTypedEvent(dpy, SelectionRequest, &event))
/* We may get a SelectionRequest here and if we don't handle
* it we hang. KDE klipper does this, for example. */
XtDispatchEvent(&event);
+ /* Time out after 2 to 3 seconds to avoid that we hang when the
+ * other process doesn't respond. Note that the SelectionNotify
+ * event may still come later when the selection owner comes back
+ * to life and the text gets inserted unexpectedly (by xterm).
+ * Don't know how to avoid that :-(. */
+ if (time(NULL) > start_time + 2)
+ {
+ timed_out = TRUE;
+ break;
+ }
+
/* Do we need this? Probably not. */
XSync(dpy, False);
! /* Wait for 1 msec to avoid that we eat up all CPU time. */
! ui_delay(1L, TRUE);
}
if (success)
return;
+
+ /* don't do a retry with another type after timing out, otherwise we
+ * hang for 15 seconds. */
+ if (timed_out)
+ break;
}
/* Final fallback position - use the X CUT_BUFFER0 store */
*** ../vim-7.2.012/src/version.c Sun Sep 7 15:49:45 2008
--- src/version.c Sun Sep 7 21:45:55 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 13,
/**/
--
The users that I support would double-click on a landmine to find out
what happens. -- A system administrator
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.014 ---
To: vim-dev at vim.org
Subject: Patch 7.2.014
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.014
Problem: synstack() doesn't work in an emptly line.
Solution: Accept column zero as a valid position.
Files: src/eval.c
*** ../vim-7.2.013/src/eval.c Sun Sep 7 13:54:31 2008
--- src/eval.c Sun Sep 7 13:50:38 2008
***************
*** 16667,16673 ****
col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
! && col >= 0 && col < (long)STRLEN(ml_get(lnum))
&& rettv_list_alloc(rettv) != FAIL)
{
(void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE);
--- 16667,16673 ----
col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
! && col >= 0 && (col == 0 || col < (long)STRLEN(ml_get(lnum)))
&& rettv_list_alloc(rettv) != FAIL)
{
(void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE);
*** ../vim-7.2.013/src/version.c Sun Sep 7 21:47:51 2008
--- src/version.c Wed Sep 10 15:36:52 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 14,
/**/
--
Everybody lies, but it doesn't matter since nobody listens.
-- Lieberman's Law
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.015 ---
To: vim-dev at vim.org
Subject: Patch 7.2.015
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.015
Problem: "make all test install" doesn't stop when the test fails. (Daniel
Shahaf)
Solution: When test.log contains failures exit with non-zero status.
Files: src/testdir/Makefile
*** ../vim-7.2.014/src/testdir/Makefile Wed Jun 25 00:22:53 2008
--- src/testdir/Makefile Sun Sep 7 21:31:49 2008
***************
*** 26,40 ****
.SUFFIXES: .in .out
! nongui: nolog $(SCRIPTS)
! @echo
! @cat test.log
! @echo ALL DONE
! gui: nolog $(SCRIPTS) $(SCRIPTS_GUI)
@echo
! @cat test.log
! @echo ALL DONE
$(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
--- 26,42 ----
.SUFFIXES: .in .out
! nongui: nolog $(SCRIPTS) report
!
! gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) report
! report:
@echo
! @echo 'Test results:'
! @/bin/sh -c "if test -f test.log; \
! then cat test.log; echo TEST FAILURE; exit 1; \
! else echo ALL DONE; \
! fi"
$(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
***************
*** 71,74 ****
test60.out: test60.vim
nolog:
! -echo Test results: >test.log
--- 73,76 ----
test60.out: test60.vim
nolog:
! -rm -f test.log
*** ../vim-7.2.014/src/version.c Wed Sep 10 15:38:13 2008
--- src/version.c Wed Sep 10 18:23:38 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 15,
/**/
--
Light travels faster than sound. This is why some people
appear bright until you hear them speak
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.016 ---
To: vim-dev at vim.org
Subject: Patch 7.2.016
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.016
Problem: The pattern being completed may be in freed memory when the
command line is being reallocated. (Dominique Pelle)
Solution: Keep a pointer to the expand_T in the command line structure.
Don't use <S-Tab> as CTRL-P when there are no results. Clear the
completion when using a command line from the history.
Files: src/ex_getln.c
*** ../vim-7.2.015/src/ex_getln.c Fri Aug 8 12:58:59 2008
--- src/ex_getln.c Wed Sep 10 22:43:41 2008
***************
*** 31,36 ****
--- 31,38 ----
int cmdattr; /* attributes for prompt */
int overstrike; /* Typing mode on the command line. Shared by
getcmdline() and put_on_cmdline(). */
+ expand_T *xpc; /* struct being used for expansion, xp_pattern
+ may point into cmdbuff */
int xp_context; /* type of expansion */
# ifdef FEAT_EVAL
char_u *xp_arg; /* user-defined expansion arg */
***************
*** 38,44 ****
# endif
};
! static struct cmdline_info ccline; /* current cmdline_info */
static int cmd_showtail; /* Only show path tail in lists ? */
--- 40,50 ----
# endif
};
! /* The current cmdline_info. It is initialized in getcmdline() and after that
! * used by other functions. When invoking getcmdline() recursively it needs
! * to be saved with save_cmdline() and restored with restore_cmdline().
! * TODO: make it local to getcmdline() and pass it around. */
! static struct cmdline_info ccline;
static int cmd_showtail; /* Only show path tail in lists ? */
***************
*** 238,243 ****
--- 244,250 ----
}
ExpandInit(&xpc);
+ ccline.xpc = &xpc;
#ifdef FEAT_RIGHTLEFT
if (curwin->w_p_rl && *curwin->w_p_rlc == 's'
***************
*** 408,416 ****
#endif
/*
! * <S-Tab> works like CTRL-P (unless 'wc' is <S-Tab>).
*/
! if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles != -1)
c = Ctrl_P;
#ifdef FEAT_WILDMENU
--- 415,424 ----
#endif
/*
! * When there are matching completions to select <S-Tab> works like
! * CTRL-P (unless 'wc' is <S-Tab>).
*/
! if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles > 0)
c = Ctrl_P;
#ifdef FEAT_WILDMENU
***************
*** 1513,1518 ****
--- 1521,1527 ----
int old_firstc;
vim_free(ccline.cmdbuff);
+ xpc.xp_context = EXPAND_NOTHING;
if (hiscnt == hislen)
p = lookfor; /* back to the old one */
else
***************
*** 1839,1844 ****
--- 1848,1854 ----
#endif
ExpandCleanup(&xpc);
+ ccline.xpc = NULL;
#ifdef FEAT_SEARCH_EXTRA
if (did_incsearch)
***************
*** 2508,2513 ****
--- 2518,2537 ----
}
mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen + 1);
vim_free(p);
+
+ if (ccline.xpc != NULL
+ && ccline.xpc->xp_pattern != NULL
+ && ccline.xpc->xp_context != EXPAND_NOTHING
+ && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL)
+ {
+ int i = ccline.xpc->xp_pattern - p;
+
+ /* If xp_pattern points inside the old cmdbuff it needs to be adjusted
+ * to point into the newly allocated memory. */
+ if (i >= 0 && i <= ccline.cmdlen)
+ ccline.xpc->xp_pattern = ccline.cmdbuff + i;
+ }
+
return OK;
}
***************
*** 2875,2880 ****
--- 2899,2905 ----
prev_ccline = ccline;
ccline.cmdbuff = NULL;
ccline.cmdprompt = NULL;
+ ccline.xpc = NULL;
}
/*
***************
*** 3582,3587 ****
--- 3607,3613 ----
ExpandInit(xp)
expand_T *xp;
{
+ xp->xp_pattern = NULL;
xp->xp_backslash = XP_BS_NONE;
#ifndef BACKSLASH_IN_FILENAME
xp->xp_shell = FALSE;
*** ../vim-7.2.015/src/version.c Wed Sep 10 18:25:18 2008
--- src/version.c Sun Sep 14 14:38:47 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 16,
/**/
--
hundred-and-one symptoms of being an internet addict:
53. To find out what time it is, you send yourself an e-mail and check the
"Date:" field.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.017 ---
To: vim-dev at vim.org
Subject: Patch 7.2.017
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.017
Problem: strlen() used on text that may not end in a NUL. (Dominique Pelle)
Pasting a very big selection doesn't work.
Solution: Use the length passed to the XtSelectionCallbackProc() function.
After getting the SelectionNotify event continue dispatching
events until the callback is actually called. Also dispatch the
PropertyNotify event.
Files: src/ui.c
*** ../vim-7.2.016/src/ui.c Sun Sep 7 21:47:51 2008
--- src/ui.c Sun Sep 14 15:52:19 2008
***************
*** 2020,2026 ****
if (value == NULL || *length == 0)
{
! clip_free_selection(cbd); /* ??? [what's the query?] */
*(int *)success = FALSE;
return;
}
--- 2020,2026 ----
if (value == NULL || *length == 0)
{
! clip_free_selection(cbd); /* nothing received, clear register */
*(int *)success = FALSE;
return;
}
***************
*** 2076,2082 ****
text_prop.value = (unsigned char *)value;
text_prop.encoding = *type;
text_prop.format = *format;
! text_prop.nitems = STRLEN(value);
status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop,
&text_list, &n_text);
if (status != Success || n_text < 1)
--- 2076,2082 ----
text_prop.value = (unsigned char *)value;
text_prop.encoding = *type;
text_prop.format = *format;
! text_prop.nitems = len;
status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop,
&text_list, &n_text);
if (status != Success || n_text < 1)
***************
*** 2131,2137 ****
case 3: type = text_atom; break;
default: type = XA_STRING;
}
! success = FALSE;
XtGetSelectionValue(myShell, cbd->sel_atom, type,
clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
--- 2131,2137 ----
case 3: type = text_atom; break;
default: type = XA_STRING;
}
! success = MAYBE;
XtGetSelectionValue(myShell, cbd->sel_atom, type,
clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
***************
*** 2145,2169 ****
* paste! Don't worry, we will catch up with any other events later.
*/
start_time = time(NULL);
! for (;;)
{
! if (XCheckTypedEvent(dpy, SelectionNotify, &event))
{
! /* this is where clip_x11_request_selection_cb() is actually
! * called */
XtDispatchEvent(&event);
! break;
}
- if (XCheckTypedEvent(dpy, SelectionRequest, &event))
- /* We may get a SelectionRequest here and if we don't handle
- * it we hang. KDE klipper does this, for example. */
- XtDispatchEvent(&event);
/* Time out after 2 to 3 seconds to avoid that we hang when the
* other process doesn't respond. Note that the SelectionNotify
* event may still come later when the selection owner comes back
! * to life and the text gets inserted unexpectedly (by xterm).
! * Don't know how to avoid that :-(. */
if (time(NULL) > start_time + 2)
{
timed_out = TRUE;
--- 2145,2171 ----
* paste! Don't worry, we will catch up with any other events later.
*/
start_time = time(NULL);
! while (success == MAYBE)
{
! if (XCheckTypedEvent(dpy, SelectionNotify, &event)
! || XCheckTypedEvent(dpy, SelectionRequest, &event)
! || XCheckTypedEvent(dpy, PropertyNotify, &event))
{
! /* This is where clip_x11_request_selection_cb() should be
! * called. It may actually happen a bit later, so we loop
! * until "success" changes.
! * We may get a SelectionRequest here and if we don't handle
! * it we hang. KDE klipper does this, for example.
! * We need to handle a PropertyNotify for large selections. */
XtDispatchEvent(&event);
! continue;
}
/* Time out after 2 to 3 seconds to avoid that we hang when the
* other process doesn't respond. Note that the SelectionNotify
* event may still come later when the selection owner comes back
! * to life and the text gets inserted unexpectedly. Don't know
! * why that happens or how to avoid that :-(. */
if (time(NULL) > start_time + 2)
{
timed_out = TRUE;
***************
*** 2177,2183 ****
ui_delay(1L, TRUE);
}
! if (success)
return;
/* don't do a retry with another type after timing out, otherwise we
--- 2179,2185 ----
ui_delay(1L, TRUE);
}
! if (success == TRUE)
return;
/* don't do a retry with another type after timing out, otherwise we
*** ../vim-7.2.016/src/version.c Sun Sep 14 14:41:44 2008
--- src/version.c Sun Sep 14 15:55:34 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 17,
/**/
--
hundred-and-one symptoms of being an internet addict:
54. You start tilting your head sideways to smile. :-)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.018 ---
To: vim-dev at vim.org
Subject: Patch 7.2.018
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.018
Problem: Memory leak when substitute is aborted.
Solution: Free the buffer allocated for the new text. (Dominique Pelle)
Files: src/ex_cmds.c
*** ../vim-7.2.017/src/ex_cmds.c Wed Aug 6 15:03:07 2008
--- src/ex_cmds.c Sun Sep 14 13:45:03 2008
***************
*** 5059,5064 ****
--- 5059,5065 ----
if (did_sub)
++sub_nlines;
+ vim_free(new_start); /* for when substitute was cancelled */
vim_free(sub_firstline); /* free the copy of the original line */
sub_firstline = NULL;
}
*** ../vim-7.2.017/src/version.c Sun Sep 14 15:57:54 2008
--- src/version.c Sun Sep 14 21:38:25 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 18,
/**/
--
hundred-and-one symptoms of being an internet addict:
55. You ask your doctor to implant a gig in your brain.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.019 ---
To: vim-dev at vim.org
Subject: Patch 7.2.019
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.019
Problem: Completion of ":noautocmd" doesn't work and exists(":noautocmd")
returns zero. (Ben Fritz)
Solution: Add "noautocmd" to the list of modifiers and commands.
Files: src/ex_cmds.h, src/ex_docmd.c
*** ../vim-7.2.018/src/ex_cmds.h Wed Jun 25 00:44:40 2008
--- src/ex_cmds.h Sat Sep 13 18:37:25 2008
***************
*** 635,640 ****
--- 635,642 ----
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
EX(CMD_noremap, "noremap", ex_map,
BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch,
TRLBAR|SBOXOK|CMDWIN),
EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate,
*** ../vim-7.2.018/src/ex_docmd.c Sat Jul 26 16:04:39 2008
--- src/ex_docmd.c Mon Sep 15 20:04:53 2008
***************
*** 2978,2983 ****
--- 2979,2985 ----
{"keepmarks", 3, FALSE},
{"leftabove", 5, FALSE},
{"lockmarks", 3, FALSE},
+ {"noautocmd", 3, FALSE},
{"rightbelow", 6, FALSE},
{"sandbox", 3, FALSE},
{"silent", 3, FALSE},
*** ../vim-7.2.018/src/version.c Sun Sep 14 21:40:26 2008
--- src/version.c Thu Sep 18 12:39:56 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 19,
/**/
--
Proof techniques #2: Proof by Oddity.
SAMPLE: To prove that horses have an infinite number of legs.
(1) Horses have an even number of legs.
(2) They have two legs in back and fore legs in front.
(3) This makes a total of six legs, which certainly is an odd number of
legs for a horse.
(4) But the only number that is both odd and even is infinity.
(5) Therefore, horses must have an infinite number of legs.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.020 ---
To: vim-dev at vim.org
Subject: Patch 7.2.020
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.020
Problem: Starting the GUI when the executable starts with 'k', but the KDE
version no longer exists.
Solution: Don't have "kvim" start the GUI.
Files: src/main.c
*** ../vim-7.2.019/src/main.c Thu Jul 24 19:34:23 2008
--- src/main.c Sun Sep 14 13:26:10 2008
***************
*** 1457,1463 ****
++initstr;
}
! if (TOLOWER_ASC(initstr[0]) == 'g' || initstr[0] == 'k')
{
main_start_gui();
#ifdef FEAT_GUI
--- 1458,1465 ----
++initstr;
}
! /* "gvim" starts the GUI. Also accept "Gvim" for MS-Windows. */
! if (TOLOWER_ASC(initstr[0]) == 'g')
{
main_start_gui();
#ifdef FEAT_GUI
*** ../vim-7.2.019/src/version.c Thu Sep 18 12:43:21 2008
--- src/version.c Thu Sep 18 20:54:10 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 20,
/**/
--
hundred-and-one symptoms of being an internet addict:
90. Instead of calling you to dinner, your spouse sends e-mail.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.021 ---
To: vim-dev at vim.org
Subject: Patch 7.2.021
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.021
Problem: When executing autocommands getting the full file name may be
slow. (David Kotchan)
Solution: Postpone calling FullName_save() until autocmd_fname is used.
Files: src/ex_docmd.c, src/fileio.c, src/globals.h
*** ../vim-7.2.020/src/ex_docmd.c Thu Sep 18 12:43:21 2008
--- src/ex_docmd.c Mon Sep 15 20:04:53 2008
***************
*** 9542,9547 ****
--- 9569,9583 ----
#ifdef FEAT_AUTOCMD
case SPEC_AFILE: /* file name for autocommand */
result = autocmd_fname;
+ if (result != NULL && !autocmd_fname_full)
+ {
+ /* Still need to turn the fname into a full path. It is
+ * postponed to avoid a delay when <afile> is not used. */
+ autocmd_fname_full = TRUE;
+ result = FullName_save(autocmd_fname, FALSE);
+ vim_free(autocmd_fname);
+ autocmd_fname = result;
+ }
if (result == NULL)
{
*errormsg = (char_u *)_("E495: no autocommand file name to substitute for \"<afile>\"");
*** ../vim-7.2.020/src/fileio.c Wed Aug 6 18:43:07 2008
--- src/fileio.c Tue Sep 16 21:24:26 2008
***************
*** 8523,8528 ****
--- 8523,8529 ----
char_u *save_sourcing_name;
linenr_T save_sourcing_lnum;
char_u *save_autocmd_fname;
+ int save_autocmd_fname_full;
int save_autocmd_bufnr;
char_u *save_autocmd_match;
int save_autocmd_busy;
***************
*** 8601,8606 ****
--- 8602,8608 ----
* Save the autocmd_* variables and info about the current buffer.
*/
save_autocmd_fname = autocmd_fname;
+ save_autocmd_fname_full = autocmd_fname_full;
save_autocmd_bufnr = autocmd_bufnr;
save_autocmd_match = autocmd_match;
save_autocmd_busy = autocmd_busy;
***************
*** 8618,8631 ****
if (fname != NULL && *fname != NUL)
autocmd_fname = fname;
else if (buf != NULL)
! autocmd_fname = buf->b_fname;
else
autocmd_fname = NULL;
}
else
autocmd_fname = fname_io;
if (autocmd_fname != NULL)
! autocmd_fname = FullName_save(autocmd_fname, FALSE);
/*
* Set the buffer number to be used for <abuf>.
--- 8620,8634 ----
if (fname != NULL && *fname != NUL)
autocmd_fname = fname;
else if (buf != NULL)
! autocmd_fname = buf->b_ffname;
else
autocmd_fname = NULL;
}
else
autocmd_fname = fname_io;
if (autocmd_fname != NULL)
! autocmd_fname = vim_strsave(autocmd_fname);
! autocmd_fname_full = FALSE; /* call FullName_save() later */
/*
* Set the buffer number to be used for <abuf>.
***************
*** 8810,8815 ****
--- 8813,8819 ----
sourcing_lnum = save_sourcing_lnum;
vim_free(autocmd_fname);
autocmd_fname = save_autocmd_fname;
+ autocmd_fname_full = save_autocmd_fname_full;
autocmd_bufnr = save_autocmd_bufnr;
autocmd_match = save_autocmd_match;
#ifdef FEAT_EVAL
***************
*** 8918,8924 ****
{
apc->curpat = NULL;
! /* only use a pattern when it has not been removed, has commands and
* the group matches. For buffer-local autocommands only check the
* buffer number. */
if (ap->pat != NULL && ap->cmds != NULL
--- 8922,8928 ----
{
apc->curpat = NULL;
! /* Only use a pattern when it has not been removed, has commands and
* the group matches. For buffer-local autocommands only check the
* buffer number. */
if (ap->pat != NULL && ap->cmds != NULL
*** ../vim-7.2.020/src/globals.h Sat Jul 26 16:04:49 2008
--- src/globals.h Mon Sep 15 19:59:28 2008
***************
*** 1022,1027 ****
--- 1022,1028 ----
#endif
#ifdef FEAT_AUTOCMD
EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */
+ EXTERN int autocmd_fname_full; /* autocmd_fname is full path */
EXTERN int autocmd_bufnr INIT(= 0); /* fnum for <abuf> on cmdline */
EXTERN char_u *autocmd_match INIT(= NULL); /* name for <amatch> on cmdline */
EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */
*** ../vim-7.2.020/src/version.c Thu Sep 18 20:55:19 2008
--- src/version.c Thu Sep 18 21:24:30 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 21,
/**/
--
>From "know your smileys":
:----} You lie like Pinocchio
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.022 ---
To: vim-dev at vim.org
Subject: Patch 7.2.022 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.022 (extra)
Problem: Testing is not possible when compiling with MingW.
Solution: Add a MingW specific test Makefile. (Bill McCarthy)
Files: Filelist, src/testdir/Make_ming.mak
*** ../vim-7.2.021/Filelist Sun Jul 13 19:33:31 2008
--- Filelist Sun Sep 14 21:47:01 2008
***************
*** 285,290 ****
--- 285,291 ----
src/proto/os_win32.pro \
src/proto/os_mswin.pro \
src/testdir/Make_dos.mak \
+ src/testdir/Make_ming.mak \
src/testdir/dos.vim \
src/uninstal.c \
src/vim.def \
*** ../vim-7.2.021/src/testdir/Make_ming.mak Sat Sep 20 16:25:06 2008
--- src/testdir/Make_ming.mak Sat Sep 20 16:25:58 2008
***************
*** 0 ****
--- 1,91 ----
+ # Makefile to run tests for Vim, on Dos-like machines
+ # with sh.exe or zsh.exe in the path or not.
+ #
+ # Author: Bill McCarthy
+ #
+ # Note that test54 has been removed until it is fixed.
+ #
+ # Requires a set of Unix tools: echo, diff, etc.
+
+ ifneq (sh.exe, $(SHELL))
+ DEL = rm -f
+ MV = mv
+ CP = cp
+ DIRSLASH = /
+ else
+ DEL = del
+ MV = rename
+ CP = copy
+ DIRSLASH = \\
+ endif
+
+ VIMPROG = ..$(DIRSLASH)vim
+
+ # Omitted:
+ # test2 "\\tmp" doesn't work.
+ # test10 'errorformat' is different
+ # test12 can't unlink a swap file
+ # test25 uses symbolic link
+ # test27 can't edit file with "*" in file name
+ # test31 16 bit version runs out of memory...
+
+ SCRIPTS16 = test1.out test19.out test20.out test22.out \
+ test23.out test24.out test28.out test29.out \
+ test35.out test36.out test43.out \
+ test44.out test45.out test46.out test47.out \
+ test48.out test51.out test53.out \
+ test55.out test56.out test57.out test58.out test59.out \
+ test60.out test61.out test62.out test63.out test64.out
+
+ # Had to remove test54 which doesn't work yet.
+ # test54.out
+
+ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
+ test8.out test9.out test11.out test13.out test14.out \
+ test15.out test17.out test18.out test21.out test26.out \
+ test30.out test31.out test32.out test33.out test34.out \
+ test37.out test38.out test39.out test40.out test41.out \
+ test42.out test52.out test65.out
+
+ SCRIPTS32 = test50.out
+
+ SCRIPTS_GUI = test16.out
+
+ .SUFFIXES: .in .out
+
+ vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32)
+ echo ALL DONE
+
+ nongui: fixff $(SCRIPTS16) $(SCRIPTS)
+ echo ALL DONE
+
+ small:
+ echo ALL DONE
+
+ gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI)
+ echo ALL DONE
+
+ win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32)
+ echo ALL DONE
+
+ fixff:
+ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
+
+ clean:
+ -$(DEL) *.out
+ -$(DEL) test.ok
+ -$(DEL) small.vim
+ -$(DEL) tiny.vim
+ -$(DEL) mbyte.vim
+ -$(DEL) X*
+ -$(DEL) viminfo
+
+ .in.out:
+ $(CP) $*.ok test.ok
+ $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
+ diff test.out $*.ok
+ -$(DEL) $*.out
+ $(MV) test.out $*.out
+ -$(DEL) X*
+ -$(DEL) test.ok
+ -$(DEL) viminfo
*** ../vim-7.2.021/src/version.c Thu Sep 18 21:29:07 2008
--- src/version.c Sat Sep 20 16:25:16 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 22,
/**/
--
Where do you want to crash today?
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.023 ---
To: vim-dev at vim.org
Subject: Patch 7.2.023
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.023
Problem: 'cursorcolumn' is in the wrong place in a closed fold when the
display is shifted left. (Gary Johnson)
Solution: Subtract w_skipcol or w_leftcol when needed.
Files: src/screen.c
*** ../vim-7.2.022/src/screen.c Thu Jul 24 20:29:09 2008
--- src/screen.c Fri Sep 26 21:23:06 2008
***************
*** 2439,2447 ****
#ifdef FEAT_SYN_HL
/* Show 'cursorcolumn' in the fold line. */
! if (wp->w_p_cuc && (int)wp->w_virtcol + txtcol < W_WIDTH(wp))
! ScreenAttrs[off + wp->w_virtcol + txtcol] = hl_combine_attr(
! ScreenAttrs[off + wp->w_virtcol + txtcol], hl_attr(HLF_CUC));
#endif
SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp),
--- 2439,2455 ----
#ifdef FEAT_SYN_HL
/* Show 'cursorcolumn' in the fold line. */
! if (wp->w_p_cuc)
! {
! txtcol += wp->w_virtcol;
! if (wp->w_p_wrap)
! txtcol -= wp->w_skipcol;
! else
! txtcol -= wp->w_leftcol;
! if (txtcol >= 0 && txtcol < W_WIDTH(wp))
! ScreenAttrs[off + txtcol] = hl_combine_attr(
! ScreenAttrs[off + txtcol], hl_attr(HLF_CUC));
! }
#endif
SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp),
*** ../vim-7.2.022/src/version.c Sat Sep 20 16:26:10 2008
--- src/version.c Wed Oct 1 21:07:31 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 23,
/**/
--
hundred-and-one symptoms of being an internet addict:
124. You begin conversations with, "Who is your internet service provider?"
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.024 ---
To: vim-dev at vim.org
Subject: Patch 7.2.024
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.024
Problem: It's possible to set 'history' to a negative value and that causes
an out-of-memory error.
Solution: Check that 'history' has a positive value. (Doug Kearns)
Files: src/option.c
*** ../vim-7.2.023/src/option.c Thu Jul 24 18:45:15 2008
--- src/option.c Fri Sep 26 22:20:20 2008
***************
*** 7974,7979 ****
--- 7974,7984 ----
else /* curwin->w_p_scr > curwin->w_height */
curwin->w_p_scr = curwin->w_height;
}
+ if (p_hi < 0)
+ {
+ errmsg = e_positive;
+ p_hi = 0;
+ }
if (p_report < 0)
{
errmsg = e_positive;
*** ../vim-7.2.023/src/version.c Wed Oct 1 21:09:02 2008
--- src/version.c Thu Oct 2 22:47:22 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 24,
/**/
--
hundred-and-one symptoms of being an internet addict:
127. You bring your laptop and cellular phone to church.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.025 ---
To: vim-dev at vim.org
Subject: Patch 7.2.025
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.025
Problem: When a CursorHold event invokes system() it is retriggered over
and over again.
Solution: Don't reset did_cursorhold when getting K_IGNORE.
Files: src/normal.c
*** ../vim-7.2.024/src/normal.c Sat Sep 6 16:44:06 2008
--- src/normal.c Sat Sep 27 13:03:34 2008
***************
*** 1132,1138 ****
out_flush();
#endif
#ifdef FEAT_AUTOCMD
! did_cursorhold = FALSE;
#endif
State = NORMAL;
--- 1132,1139 ----
out_flush();
#endif
#ifdef FEAT_AUTOCMD
! if (ca.cmdchar != K_IGNORE)
! did_cursorhold = FALSE;
#endif
State = NORMAL;
*** ../vim-7.2.024/src/version.c Thu Oct 2 22:48:01 2008
--- src/version.c Thu Oct 2 22:54:41 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 25,
/**/
--
hundred-and-one symptoms of being an internet addict:
128. You can access the Net -- via your portable and cellular phone.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.026 ---
To: vim-dev at vim.org
Subject: Patch 7.2.026
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.026 (after 7.2.010)
Problem: "K" doesn't use the length of the identifier but uses the rest of
the line.
Solution: Copy the desired number of characters first.
Files: src/normal.c
*** ../vim-7.2.025/src/normal.c Thu Oct 2 22:55:17 2008
--- src/normal.c Sat Nov 1 13:41:03 2008
***************
*** 183,188 ****
--- 183,190 ----
static void nv_cursorhold __ARGS((cmdarg_T *cap));
#endif
+ static char *e_noident = N_("E349: No identifier under cursor");
+
/*
* Function to be called for a Normal or Visual mode command.
* The argument is a cmdarg_T.
***************
*** 3510,3516 ****
if (find_type & FIND_STRING)
EMSG(_("E348: No string under cursor"));
else
! EMSG(_("E349: No identifier under cursor"));
return 0;
}
ptr += col;
--- 3512,3518 ----
if (find_type & FIND_STRING)
EMSG(_("E348: No string under cursor"));
else
! EMSG(_(e_noident));
return 0;
}
ptr += col;
***************
*** 5472,5479 ****
{
/* An external command will probably use an argument starting
* with "-" as an option. To avoid trouble we skip the "-". */
! while (*ptr == '-')
++ptr;
/* When a count is given, turn it into a range. Is this
* really what we want? */
--- 5474,5490 ----
{
/* An external command will probably use an argument starting
* with "-" as an option. To avoid trouble we skip the "-". */
! while (*ptr == '-' && n > 0)
! {
++ptr;
+ --n;
+ }
+ if (n == 0)
+ {
+ EMSG(_(e_noident)); /* found dashes only */
+ vim_free(buf);
+ return;
+ }
/* When a count is given, turn it into a range. Is this
* really what we want? */
***************
*** 5520,5526 ****
--- 5531,5539 ----
if (cmdchar == 'K' && !kp_help)
{
/* Escape the argument properly for a shell command */
+ ptr = vim_strnsave(ptr, n);
p = vim_strsave_shellescape(ptr, TRUE);
+ vim_free(ptr);
if (p == NULL)
{
vim_free(buf);
*** ../vim-7.2.025/src/version.c Thu Oct 2 22:55:17 2008
--- src/version.c Sat Nov 1 13:50:53 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 26,
/**/
--
hundred-and-one symptoms of being an internet addict:
161. You get up before the sun rises to check your e-mail, and you
find yourself in the very same chair long after the sun has set.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.027 ---
To: vim-dev at vim.org
Subject: Patch 7.2.027
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.027
Problem: Can use cscope commands in the sandbox.
Solution: Disallow them, they might not be safe.
Files: src/ex_cmds.h
*** ../vim-7.2.026/src/ex_cmds.h Thu Sep 18 12:43:21 2008
--- src/ex_cmds.h Thu Sep 18 22:18:14 2008
***************
*** 278,284 ****
EX(CMD_crewind, "crewind", ex_cc,
RANGE|NOTADR|COUNT|TRLBAR|BANG),
EX(CMD_cscope, "cscope", do_cscope,
! EXTRA|NOTRLCOM|SBOXOK|XFILE),
EX(CMD_cstag, "cstag", do_cstag,
BANG|TRLBAR|WORD1),
EX(CMD_cunmap, "cunmap", ex_unmap,
--- 278,284 ----
EX(CMD_crewind, "crewind", ex_cc,
RANGE|NOTADR|COUNT|TRLBAR|BANG),
EX(CMD_cscope, "cscope", do_cscope,
! EXTRA|NOTRLCOM|XFILE),
EX(CMD_cstag, "cstag", do_cstag,
BANG|TRLBAR|WORD1),
EX(CMD_cunmap, "cunmap", ex_unmap,
***************
*** 506,512 ****
EX(CMD_lclose, "lclose", ex_cclose,
RANGE|NOTADR|COUNT|TRLBAR),
EX(CMD_lcscope, "lcscope", do_cscope,
! EXTRA|NOTRLCOM|SBOXOK|XFILE),
EX(CMD_left, "left", ex_align,
TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
EX(CMD_leftabove, "leftabove", ex_wrongmodifier,
--- 506,512 ----
EX(CMD_lclose, "lclose", ex_cclose,
RANGE|NOTADR|COUNT|TRLBAR),
EX(CMD_lcscope, "lcscope", do_cscope,
! EXTRA|NOTRLCOM|XFILE),
EX(CMD_left, "left", ex_align,
TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
EX(CMD_leftabove, "leftabove", ex_wrongmodifier,
***************
*** 653,658 ****
--- 653,660 ----
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
EX(CMD_open, "open", ex_open,
RANGE|EXTRA),
+ EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
+ BANG|TRLBAR|SBOXOK|CMDWIN),
EX(CMD_omap, "omap", ex_map,
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
EX(CMD_omapclear, "omapclear", ex_mapclear,
***************
*** 804,810 ****
EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding,
WORD1|TRLBAR|CMDWIN),
EX(CMD_scscope, "scscope", do_scscope,
! EXTRA|NOTRLCOM|SBOXOK),
EX(CMD_set, "set", ex_set,
TRLBAR|EXTRA|CMDWIN|SBOXOK),
EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
--- 806,812 ----
EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding,
WORD1|TRLBAR|CMDWIN),
EX(CMD_scscope, "scscope", do_scscope,
! EXTRA|NOTRLCOM),
EX(CMD_set, "set", ex_set,
TRLBAR|EXTRA|CMDWIN|SBOXOK),
EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
*** ../vim-7.2.026/src/version.c Sat Nov 1 13:51:57 2008
--- src/version.c Thu Nov 6 10:21:21 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 27,
/**/
--
hundred-and-one symptoms of being an internet addict:
179. You wonder why your household garbage can doesn't have an
"empty recycle bin" button.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.028 ---
To: vim-dev at vim.org
Subject: Patch 7.2.028
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.028
Problem: Confusing error message for missing ().
Solution: Change "braces" to "parentheses". (Gary Johnson)
Files: src/eval.c
*** ../vim-7.2.027/src/eval.c Wed Sep 10 15:38:13 2008
--- src/eval.c Tue Sep 30 21:43:38 2008
***************
*** 3287,3293 ****
if (*startarg != '(')
{
! EMSG2(_("E107: Missing braces: %s"), eap->arg);
goto end;
}
--- 3293,3299 ----
if (*startarg != '(')
{
! EMSG2(_("E107: Missing parentheses: %s"), eap->arg);
goto end;
}
*** ../vim-7.2.027/src/version.c Thu Nov 6 10:23:03 2008
--- src/version.c Thu Nov 6 11:02:51 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 28,
/**/
--
Wizards had always known that the act of observation changed the thing that
was observed, and sometimes forgot that it also changed the observer too.
Terry Pratchett - Interesting times
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.029 ---
To: vim-dev at vim.org
Subject: Patch 7.2.029
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.029
Problem: No completion for ":doautoall".
Solution: Complete ":doautoall" like ":doautocmd". (Doug Kearns)
Files: src/ex_docmd.c
*** ../vim-7.2.028/src/ex_docmd.c Thu Sep 18 21:29:07 2008
--- src/ex_docmd.c Mon Nov 3 21:21:17 2008
***************
*** 3609,3614 ****
--- 3610,3616 ----
return set_context_in_autocmd(xp, arg, FALSE);
case CMD_doautocmd:
+ case CMD_doautoall:
return set_context_in_autocmd(xp, arg, TRUE);
#endif
case CMD_set:
*** ../vim-7.2.028/src/version.c Thu Nov 6 11:04:50 2008
--- src/version.c Thu Nov 6 17:14:58 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 29,
/**/
--
Press any key to continue, press any other key to quit.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.030 ---
To: vim-dev at vim.org
Subject: Patch 7.2.030
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.030 (after 7.2.027)
Problem: Can't compile.
Solution: Remove prematurely added ex_oldfiles.
Files: src/ex_cmds.h
*** ../vim-7.2.029/src/ex_cmds.h Thu Nov 6 10:23:03 2008
--- src/ex_cmds.h Thu Nov 6 20:45:07 2008
***************
*** 653,660 ****
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
EX(CMD_open, "open", ex_open,
RANGE|EXTRA),
- EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
- BANG|TRLBAR|SBOXOK|CMDWIN),
EX(CMD_omap, "omap", ex_map,
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
EX(CMD_omapclear, "omapclear", ex_mapclear,
--- 653,658 ----
*** ../vim-7.2.029/src/version.c Thu Nov 6 17:16:06 2008
--- src/version.c Thu Nov 6 20:46:11 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 30,
/**/
--
% cat /usr/include/sys/errno.h
#define EPERM 1 /* Operation not permitted */
#define ENOENT 2 /* No such file or directory */
#define ESRCH 3 /* No such process */
[...]
#define EMACS 666 /* Too many macros */
%
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.031 ---
To: vim-dev at vim.org
Subject: Patch 7.2.031
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.031
Problem: Information in the viminfo file about previously edited files is
not available to the user. There is no way to get a complete list
of files edited in previous Vim sessions.
Solution: Add v:oldfiles and fill it with the list of old file names when
first reading the viminfo file. Add the ":oldfiles" command,
":browse oldfiles" and the "#<123" special file name. Increase
the default value for 'viminfo' from '20 to '100.
Files: runtime/doc/cmdline.txt, runtime/doc/eval.txt,
runtime/doc/starting.txt, runtime/doc/usr_21.txt, src/eval.c,
src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, src/feature.h,
src/fileio.c, src/main.c, src/mark.c, src/misc1.c,
src/proto/eval.pro, src/proto/ex_cmds.pro, src/proto/mark.pro,
src/option.c, src/structs.h, src/vim.h
*** ../vim-7.2.030/runtime/doc/cmdline.txt Sat Aug 9 19:36:46 2008
--- runtime/doc/cmdline.txt Thu Sep 18 22:55:27 2008
***************
*** 1,4 ****
! *cmdline.txt* For Vim version 7.2. Last change: 2008 Jul 29
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 157,162 ****
--- 157,167 ----
(doesn't work at the expression prompt; some
things such as changing the buffer or current
window are not allowed to avoid side effects)
+ When the result is a |List| the items are used
+ as lines. They can have line breaks inside
+ too.
+ When the result is a Float it's automatically
+ converted to a String.
See |registers| about registers. {not in Vi}
Implementation detail: When using the |expression| register
and invoking setcmdpos(), this sets the position before
***************
*** 730,748 ****
In Ex commands, at places where a file name can be used, the following
characters have a special meaning. These can also be used in the expression
function expand() |expand()|.
! % is replaced with the current file name *:_%*
! # is replaced with the alternate file name *:_#*
#n (where n is a number) is replaced with the file name of
! buffer n. "#0" is the same as "#"
! ## is replaced with all names in the argument list *:_##*
concatenated, separated by spaces. Each space in a name
is preceded with a backslash.
! Note that these give the file name as it was typed. If an absolute path is
! needed (when using the file name from a different directory), you need to add
! ":p". See |filename-modifiers|.
Note that backslashes are inserted before spaces, so that the command will
correctly interpret the file name. But this doesn't happen for shell
! commands. For those you probably have to use quotes: >
:!ls "%"
:r !spell "%"
--- 735,763 ----
In Ex commands, at places where a file name can be used, the following
characters have a special meaning. These can also be used in the expression
function expand() |expand()|.
! % Is replaced with the current file name. *:_%* *c_%*
! # Is replaced with the alternate file name. *:_#* *c_#*
#n (where n is a number) is replaced with the file name of
! buffer n. "#0" is the same as "#".
! ## Is replaced with all names in the argument list *:_##* *c_##*
concatenated, separated by spaces. Each space in a name
is preceded with a backslash.
! #<n (where n is a number > 0) is replaced with old *:_#<* *c_#<*
! file name n. See |:oldfiles| or |v:oldfiles| to get the
! number. *E809*
! {only when compiled with the +eval and +viminfo features}
!
! Note that these, except "#<n", give the file name as it was typed. If an
! absolute path is needed (when using the file name from a different directory),
! you need to add ":p". See |filename-modifiers|.
!
! The "#<n" item returns an absolute path, but it will start with "~/" for files
! below your home directory.
!
Note that backslashes are inserted before spaces, so that the command will
correctly interpret the file name. But this doesn't happen for shell
! commands. For those you probably have to use quotes (this fails for files
! that contain a quote and wildcards): >
:!ls "%"
:r !spell "%"
*** ../vim-7.2.030/runtime/doc/eval.txt Sat Aug 9 19:36:47 2008
--- runtime/doc/eval.txt Sun Nov 2 14:25:38 2008
***************
*** 1,4 ****
! *eval.txt* For Vim version 7.2. Last change: 2008 Aug 09
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 02
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 1484,1489 ****
--- 1484,1500 ----
This is the screen column number, like with |virtcol()|. The
value is zero when there was no mouse button click.
+ *v:oldfiles* *oldfiles-variable*
+ v:oldfiles List of file names that is loaded from the |viminfo| file on
+ startup. These are the files that Vim remembers marks for.
+ The length of the List is limited by the ' argument of the
+ 'viminfo' option (default is 100).
+ Also see |:oldfiles| and |c_#<|.
+ The List can be modified, but this has no effect on what is
+ stored in the |viminfo| file later. If you use values other
+ than String this will cause trouble.
+ {only when compiled with the +viminfo feature}
+
*v:operator* *operator-variable*
v:operator The last operator given in Normal mode. This is a single
character except for commands starting with <g> or <z>,
*** ../vim-7.2.030/runtime/doc/starting.txt Sat Aug 9 19:36:52 2008
--- runtime/doc/starting.txt Sun Nov 9 12:12:19 2008
***************
*** 1,4 ****
! *starting.txt* For Vim version 7.2. Last change: 2008 Jun 21
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *starting.txt* For Vim version 7.2. Last change: 2008 Nov 09
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 1337,1344 ****
*viminfo-read*
When Vim is started and the 'viminfo' option is non-empty, the contents of
the viminfo file are read and the info can be used in the appropriate places.
! The marks are not read in at startup (but file marks are). See
! |initialization| for how to set the 'viminfo' option upon startup.
*viminfo-write*
When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo
--- 1335,1343 ----
*viminfo-read*
When Vim is started and the 'viminfo' option is non-empty, the contents of
the viminfo file are read and the info can be used in the appropriate places.
! The |v:oldfiles| variable is filled. The marks are not read in at startup
! (but file marks are). See |initialization| for how to set the 'viminfo'
! option upon startup.
*viminfo-write*
When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo
***************
*** 1372,1377 ****
--- 1371,1378 ----
that start with any string given with the "r" flag in 'viminfo'. This can be
used to avoid saving marks for files on removable media (for MS-DOS you would
use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:").
+ The |v:oldfiles| variable is filled with the file names that the viminfo file
+ has marks for.
*viminfo-file-marks*
Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The
***************
*** 1463,1470 ****
*:rv* *:rviminfo* *E195*
:rv[iminfo][!] [file] Read from viminfo file [file] (default: see above).
If [!] is given, then any information that is
! already set (registers, marks, etc.) will be
! overwritten. {not in Vi}
*:wv* *:wviminfo* *E137* *E138* *E574*
:wv[iminfo][!] [file] Write to viminfo file [file] (default: see above).
--- 1464,1471 ----
*:rv* *:rviminfo* *E195*
:rv[iminfo][!] [file] Read from viminfo file [file] (default: see above).
If [!] is given, then any information that is
! already set (registers, marks, |v:oldfiles|, etc.)
! will be overwritten {not in Vi}
*:wv* *:wviminfo* *E137* *E138* *E574*
:wv[iminfo][!] [file] Write to viminfo file [file] (default: see above).
***************
*** 1479,1482 ****
--- 1480,1499 ----
the .viminfo file.
{not in Vi}
+ *:ol* *:oldfiles*
+ :ol[dfiles] List the files that have marks stored in the viminfo
+ file. This list is read on startup and only changes
+ afterwards with ":rviminfo!". Also see |v:oldfiles|.
+ The number can be used with |c_#<|.
+ {not in Vi, only when compiled with the +eval feature}
+
+ :bro[wse] ol[dfiles][!]
+ List file names as with |:oldfiles|, and then prompt
+ for a number. When the number is valid that file from
+ the list is edited.
+ If you get the |press-enter| prompt you can press "q"
+ and still get the prompt to enter a file number.
+ Use ! to abondon a modified buffer. |abandon|
+ {not when compiled with tiny or small features}
+
vim:tw=78:ts=8:ft=help:norl:
*** ../vim-7.2.030/runtime/doc/usr_21.txt Sat Aug 9 19:36:53 2008
--- runtime/doc/usr_21.txt Sun Nov 9 12:14:10 2008
***************
*** 1,4 ****
! *usr_21.txt* For Vim version 7.2. Last change: 2007 May 01
VIM USER MANUAL - by Bram Moolenaar
--- 1,4 ----
! *usr_21.txt* For Vim version 7.2. Last change: 2008 Nov 09
VIM USER MANUAL - by Bram Moolenaar
***************
*** 153,159 ****
to be lost. Each item can be remembered only once.
! GETTING BACK TO WHERE YOU WERE
You are halfway editing a file and it's time to leave for holidays. You exit
Vim and go enjoy yourselves, forgetting all about your work. After a couple
--- 153,159 ----
to be lost. Each item can be remembered only once.
! GETTING BACK TO WHERE YOU STOPPED VIM
You are halfway editing a file and it's time to leave for holidays. You exit
Vim and go enjoy yourselves, forgetting all about your work. After a couple
***************
*** 168,173 ****
--- 168,215 ----
The |:marks| command is useful to find out where '0 to '9 will take you.
+ GETTING BACK TO SOME FILE
+
+ If you want to go back to a file that you edited recently, but not when
+ exiting Vim, there is a slightly more complicated way. You can see a list of
+ files by typing the command: >
+
+ :oldfiles
+ < 1: ~/.viminfo ~
+ 2: ~/text/resume.txt ~
+ 3: /tmp/draft ~
+
+ Now you would like to edit the second file, which is in the list preceded by
+ "2:". You type: >
+
+ :e #<2
+
+ Instead of ":e" you can use any command that has a file name argument, the
+ "#<2" item works in the same place as "%" (current file name) and "#"
+ (alternate file name). So you can also split the window to edit the third
+ file: >
+
+ :split #<3
+
+ That #<123 thing is a bit complicated when you just want to edit a file.
+ Fortunately there is a simpler way: >
+
+ :browse oldfiles
+ < 1: ~/.viminfo ~
+ 2: ~/text/resume.txt ~
+ 3: /tmp/draft ~
+ -- More --
+
+ You get the same list of files as with |:oldfiles|. If you want to edit
+ "resume.txt" first press "q" to stop the listing. You will get a prompt:
+
+ Type number and <Enter> (empty cancels): ~
+
+ Type "2" and press <Enter> to edit the second file.
+
+ More info at |:oldfiles|, |v:oldfiles| and |c_#<|.
+
+
MOVE INFO FROM ONE VIM TO ANOTHER
You can use the ":wviminfo" and ":rviminfo" commands to save and restore the
*** ../vim-7.2.030/src/eval.c Thu Nov 6 11:04:50 2008
--- src/eval.c Sun Nov 9 11:59:39 2008
***************
*** 348,353 ****
--- 348,354 ----
{VV_NAME("mouse_col", VAR_NUMBER), 0},
{VV_NAME("operator", VAR_STRING), VV_RO},
{VV_NAME("searchforward", VAR_NUMBER), 0},
+ {VV_NAME("oldfiles", VAR_LIST), 0},
};
/* shorthand */
***************
*** 355,360 ****
--- 356,362 ----
#define vv_nr vv_di.di_tv.vval.v_number
#define vv_float vv_di.di_tv.vval.v_float
#define vv_str vv_di.di_tv.vval.v_string
+ #define vv_list vv_di.di_tv.vval.v_list
#define vv_tv vv_di.di_tv
/*
***************
*** 426,432 ****
static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
static void list_append __ARGS((list_T *l, listitem_T *item));
static int list_append_tv __ARGS((list_T *l, typval_T *tv));
- static int list_append_string __ARGS((list_T *l, char_u *str, int len));
static int list_append_number __ARGS((list_T *l, varnumber_T n));
static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef));
--- 428,433 ----
***************
*** 845,852 ****
p = &vimvars[i];
if (p->vv_di.di_tv.v_type == VAR_STRING)
{
! vim_free(p->vv_di.di_tv.vval.v_string);
! p->vv_di.di_tv.vval.v_string = NULL;
}
}
hash_clear(&vimvarht);
--- 846,858 ----
p = &vimvars[i];
if (p->vv_di.di_tv.v_type == VAR_STRING)
{
! vim_free(p->vv_string);
! p->vv_string = NULL;
! }
! else if (p->vv_di.di_tv.v_type == VAR_LIST)
! {
! list_unref(p->vv_list);
! p->vv_list = NULL;
}
}
hash_clear(&vimvarht);
***************
*** 6057,6062 ****
--- 6063,6087 ----
}
/*
+ * Get list item "l[idx - 1]" as a string. Returns NULL for failure.
+ */
+ char_u *
+ list_find_str(l, idx)
+ list_T *l;
+ long idx;
+ {
+ listitem_T *li;
+
+ li = list_find(l, idx - 1);
+ if (li == NULL)
+ {
+ EMSGN(_(e_listidx), idx);
+ return NULL;
+ }
+ return get_tv_string(&li->li_tv);
+ }
+
+ /*
* Locate "item" list "l" and return its index.
* Returns -1 when "item" is not in the list.
*/
***************
*** 6147,6153 ****
* When "len" >= 0 use "str[len]".
* Returns FAIL when out of memory.
*/
! static int
list_append_string(l, str, len)
list_T *l;
char_u *str;
--- 6172,6178 ----
* When "len" >= 0 use "str[len]".
* Returns FAIL when out of memory.
*/
! int
list_append_string(l, str, len)
list_T *l;
char_u *str;
***************
*** 6507,6512 ****
--- 6532,6540 ----
set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID);
}
+ /* v: vars */
+ set_ref_in_ht(&vimvarht, copyID);
+
/*
* 2. Go through the list of dicts and free items without the copyID.
*/
***************
*** 6597,6603 ****
{
case VAR_DICT:
dd = tv->vval.v_dict;
! if (dd->dv_copyID != copyID)
{
/* Didn't see this dict yet. */
dd->dv_copyID = copyID;
--- 6625,6631 ----
{
case VAR_DICT:
dd = tv->vval.v_dict;
! if (dd != NULL && dd->dv_copyID != copyID)
{
/* Didn't see this dict yet. */
dd->dv_copyID = copyID;
***************
*** 6607,6613 ****
case VAR_LIST:
ll = tv->vval.v_list;
! if (ll->lv_copyID != copyID)
{
/* Didn't see this list yet. */
ll->lv_copyID = copyID;
--- 6635,6641 ----
case VAR_LIST:
ll = tv->vval.v_list;
! if (ll != NULL && ll->lv_copyID != copyID)
{
/* Didn't see this list yet. */
ll->lv_copyID = copyID;
***************
*** 18106,18111 ****
--- 18134,18150 ----
}
/*
+ * Get List v: variable value. Caller must take care of reference count when
+ * needed.
+ */
+ list_T *
+ get_vim_var_list(idx)
+ int idx;
+ {
+ return vimvars[idx].vv_list;
+ }
+
+ /*
* Set v:count, v:count1 and v:prevcount.
*/
void
***************
*** 18141,18146 ****
--- 18180,18199 ----
}
/*
+ * Set List v: variable to "val".
+ */
+ void
+ set_vim_var_list(idx, val)
+ int idx;
+ list_T *val;
+ {
+ list_unref(vimvars[idx].vv_list);
+ vimvars[idx].vv_list = val;
+ if (val != NULL)
+ ++val->lv_refcount;
+ }
+
+ /*
* Set v:register if needed.
*/
void
***************
*** 21900,21905 ****
--- 21953,22014 ----
}
}
+ /*
+ * List v:oldfiles in a nice way.
+ */
+ /*ARGSUSED*/
+ void
+ ex_oldfiles(eap)
+ exarg_T *eap;
+ {
+ list_T *l = vimvars[VV_OLDFILES].vv_list;
+ listitem_T *li;
+ int nr = 0;
+
+ if (l == NULL)
+ msg((char_u *)_("No old files"));
+ else
+ {
+ msg_start();
+ msg_scroll = TRUE;
+ for (li = l->lv_first; li != NULL && !got_int; li = li->li_next)
+ {
+ msg_outnum((long)++nr);
+ MSG_PUTS(": ");
+ msg_outtrans(get_tv_string(&li->li_tv));
+ msg_putchar('\n');
+ out_flush(); /* output one line at a time */
+ ui_breakcheck();
+ }
+ /* Assume "got_int" was set to truncate the listing. */
+ got_int = FALSE;
+
+ #ifdef FEAT_BROWSE_CMD
+ if (cmdmod.browse)
+ {
+ quit_more = FALSE;
+ nr = prompt_for_number(FALSE);
+ msg_starthere();
+ if (nr > 0)
+ {
+ char_u *p = list_find_str(get_vim_var_list(VV_OLDFILES),
+ (long)nr);
+
+ if (p != NULL)
+ {
+ p = expand_env_save(p);
+ eap->arg = p;
+ eap->cmdidx = CMD_edit;
+ cmdmod.browse = FALSE;
+ do_exedit(eap, NULL);
+ vim_free(p);
+ }
+ }
+ }
+ #endif
+ }
+ }
+
#endif /* FEAT_EVAL */
*** ../vim-7.2.030/src/ex_cmds.c Sun Sep 14 21:40:26 2008
--- src/ex_cmds.c Sun Sep 14 13:45:03 2008
***************
*** 24,30 ****
static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out));
#ifdef FEAT_VIMINFO
static char_u *viminfo_filename __ARGS((char_u *));
! static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int want_info, int want_marks, int force_read));
static int viminfo_encoding __ARGS((vir_T *virp));
static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
#endif
--- 24,30 ----
static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out));
#ifdef FEAT_VIMINFO
static char_u *viminfo_filename __ARGS((char_u *));
! static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int flags));
static int viminfo_encoding __ARGS((vir_T *virp));
static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
#endif
***************
*** 1676,1689 ****
/*
* read_viminfo() -- Read the viminfo file. Registers etc. which are already
! * set are not over-written unless force is TRUE. -- webb
*/
int
! read_viminfo(file, want_info, want_marks, forceit)
! char_u *file;
! int want_info;
! int want_marks;
! int forceit;
{
FILE *fp;
char_u *fname;
--- 1676,1687 ----
/*
* read_viminfo() -- Read the viminfo file. Registers etc. which are already
! * set are not over-written unless "flags" includes VIF_FORCEIT. -- webb
*/
int
! read_viminfo(file, flags)
! char_u *file; /* file name or NULL to use default name */
! int flags; /* VIF_WANT_INFO et al. */
{
FILE *fp;
char_u *fname;
***************
*** 1691,1697 ****
if (no_viminfo())
return FAIL;
! fname = viminfo_filename(file); /* may set to default if NULL */
if (fname == NULL)
return FAIL;
fp = mch_fopen((char *)fname, READBIN);
--- 1689,1695 ----
if (no_viminfo())
return FAIL;
! fname = viminfo_filename(file); /* get file name in allocated buffer */
if (fname == NULL)
return FAIL;
fp = mch_fopen((char *)fname, READBIN);
***************
*** 1701,1708 ****
verbose_enter();
smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"),
fname,
! want_info ? _(" info") : "",
! want_marks ? _(" marks") : "",
fp == NULL ? _(" FAILED") : "");
verbose_leave();
}
--- 1699,1707 ----
verbose_enter();
smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"),
fname,
! (flags & VIF_WANT_INFO) ? _(" info") : "",
! (flags & VIF_WANT_MARKS) ? _(" marks") : "",
! (flags & VIF_GET_OLDFILES) ? _(" oldfiles") : "",
fp == NULL ? _(" FAILED") : "");
verbose_leave();
}
***************
*** 1712,1721 ****
return FAIL;
viminfo_errcnt = 0;
! do_viminfo(fp, NULL, want_info, want_marks, forceit);
fclose(fp);
-
return OK;
}
--- 1711,1719 ----
return FAIL;
viminfo_errcnt = 0;
! do_viminfo(fp, NULL, flags);
fclose(fp);
return OK;
}
***************
*** 1968,1974 ****
}
viminfo_errcnt = 0;
! do_viminfo(fp_in, fp_out, !forceit, !forceit, FALSE);
fclose(fp_out); /* errors are ignored !? */
if (fp_in != NULL)
--- 1966,1972 ----
}
viminfo_errcnt = 0;
! do_viminfo(fp_in, fp_out, forceit ? 0 : (VIF_WANT_INFO | VIF_WANT_MARKS));
fclose(fp_out); /* errors are ignored !? */
if (fp_in != NULL)
***************
*** 2041,2052 ****
* do_viminfo() -- Should only be called from read_viminfo() & write_viminfo().
*/
static void
! do_viminfo(fp_in, fp_out, want_info, want_marks, force_read)
FILE *fp_in;
FILE *fp_out;
! int want_info;
! int want_marks;
! int force_read;
{
int count = 0;
int eof = FALSE;
--- 2039,2048 ----
* do_viminfo() -- Should only be called from read_viminfo() & write_viminfo().
*/
static void
! do_viminfo(fp_in, fp_out, flags)
FILE *fp_in;
FILE *fp_out;
! int flags;
{
int count = 0;
int eof = FALSE;
***************
*** 2061,2068 ****
if (fp_in != NULL)
{
! if (want_info)
! eof = read_viminfo_up_to_marks(&vir, force_read, fp_out != NULL);
else
/* Skip info, find start of marks */
while (!(eof = viminfo_readline(&vir))
--- 2057,2065 ----
if (fp_in != NULL)
{
! if (flags & VIF_WANT_INFO)
! eof = read_viminfo_up_to_marks(&vir,
! flags & VIF_FORCEIT, fp_out != NULL);
else
/* Skip info, find start of marks */
while (!(eof = viminfo_readline(&vir))
***************
*** 2092,2099 ****
write_viminfo_bufferlist(fp_out);
count = write_viminfo_marks(fp_out);
}
! if (fp_in != NULL && want_marks)
! copy_viminfo_marks(&vir, fp_out, count, eof);
vim_free(vir.vir_line);
#ifdef FEAT_MBYTE
--- 2089,2097 ----
write_viminfo_bufferlist(fp_out);
count = write_viminfo_marks(fp_out);
}
! if (fp_in != NULL
! && (flags & (VIF_WANT_MARKS | VIF_GET_OLDFILES | VIF_FORCEIT)))
! copy_viminfo_marks(&vir, fp_out, count, eof, flags);
vim_free(vir.vir_line);
#ifdef FEAT_MBYTE
*** ../vim-7.2.030/src/ex_cmds.h Thu Nov 6 20:47:00 2008
--- src/ex_cmds.h Thu Sep 18 22:18:14 2008
***************
*** 653,658 ****
--- 653,660 ----
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
EX(CMD_open, "open", ex_open,
RANGE|EXTRA),
+ EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
+ BANG|TRLBAR|SBOXOK|CMDWIN),
EX(CMD_omap, "omap", ex_map,
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
EX(CMD_omapclear, "omapclear", ex_mapclear,
*** ../vim-7.2.030/src/ex_docmd.c Thu Nov 6 17:16:06 2008
--- src/ex_docmd.c Mon Nov 3 21:21:17 2008
***************
*** 364,369 ****
--- 364,370 ----
# define ex_function ex_ni
# define ex_delfunction ex_ni
# define ex_return ex_ni
+ # define ex_oldfiles ex_ni
#endif
static char_u *arg_all __ARGS((void));
#ifdef FEAT_SESSION
***************
*** 1770,1776 ****
}
if (checkforcmd(&ea.cmd, "browse", 3))
{
! #ifdef FEAT_BROWSE
cmdmod.browse = TRUE;
#endif
continue;
--- 1771,1777 ----
}
if (checkforcmd(&ea.cmd, "browse", 3))
{
! #ifdef FEAT_BROWSE_CMD
cmdmod.browse = TRUE;
#endif
continue;
***************
*** 9508,9531 ****
break;
}
s = src + 1;
i = (int)getdigits(&s);
*usedlen = (int)(s - src); /* length of what we expand */
! buf = buflist_findnr(i);
! if (buf == NULL)
{
! *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'");
return NULL;
}
! if (lnump != NULL)
! *lnump = ECMD_LAST;
! if (buf->b_fname == NULL)
{
! result = (char_u *)"";
! valid = 0; /* Must have ":p:h" to be valid */
}
- else
- result = buf->b_fname;
break;
#ifdef FEAT_SEARCHPATH
--- 9509,9558 ----
break;
}
s = src + 1;
+ if (*s == '<') /* "#<99" uses v:oldfiles */
+ ++s;
i = (int)getdigits(&s);
*usedlen = (int)(s - src); /* length of what we expand */
! if (src[1] == '<')
{
! if (*usedlen < 2)
! {
! /* Should we give an error message for #<text? */
! *usedlen = 1;
! return NULL;
! }
! #ifdef FEAT_EVAL
! result = list_find_str(get_vim_var_list(VV_OLDFILES),
! (long)i);
! if (result == NULL)
! {
! *errormsg = (char_u *)"";
! return NULL;
! }
! #else
! *errormsg = (char_u *)_("E809: #< is not available without the +eval feature");
return NULL;
+ #endif
}
! else
{
! buf = buflist_findnr(i);
! if (buf == NULL)
! {
! *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'");
! return NULL;
! }
! if (lnump != NULL)
! *lnump = ECMD_LAST;
! if (buf->b_fname == NULL)
! {
! result = (char_u *)"";
! valid = 0; /* Must have ":p:h" to be valid */
! }
! else
! result = buf->b_fname;
}
break;
#ifdef FEAT_SEARCHPATH
***************
*** 10700,10706 ****
p_viminfo = (char_u *)"'100";
if (eap->cmdidx == CMD_rviminfo)
{
! if (read_viminfo(eap->arg, TRUE, TRUE, eap->forceit) == FAIL)
EMSG(_("E195: Cannot open viminfo file for reading"));
}
else
--- 10727,10734 ----
p_viminfo = (char_u *)"'100";
if (eap->cmdidx == CMD_rviminfo)
{
! if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS
! | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL)
EMSG(_("E195: Cannot open viminfo file for reading"));
}
else
*** ../vim-7.2.030/src/feature.h Wed Aug 6 18:45:07 2008
--- src/feature.h Fri Sep 19 19:14:22 2008
***************
*** 767,775 ****
/*
* +browse ":browse" command.
*/
! #if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC))
! # define FEAT_BROWSE
#endif
/*
--- 767,779 ----
/*
* +browse ":browse" command.
+ * or just the ":browse" command modifier
*/
! #if defined(FEAT_NORMAL)
! # define FEAT_BROWSE_CMD
! # if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)
! # define FEAT_BROWSE
! # endif
#endif
/*
*** ../vim-7.2.030/src/fileio.c Thu Sep 18 21:29:07 2008
--- src/fileio.c Mon Nov 3 21:21:47 2008
***************
*** 2711,2717 ****
{
if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
&& curbuf->b_ffname != NULL)
! read_viminfo(NULL, FALSE, TRUE, FALSE);
/* Always set b_marks_read; needed when 'viminfo' is changed to include
* the ' parameter after opening a buffer. */
--- 2711,2717 ----
{
if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
&& curbuf->b_ffname != NULL)
! read_viminfo(NULL, VIF_WANT_MARKS);
/* Always set b_marks_read; needed when 'viminfo' is changed to include
* the ' parameter after opening a buffer. */
***************
*** 9108,9114 ****
set_context_in_autocmd(xp, arg, doautocmd)
expand_T *xp;
char_u *arg;
! int doautocmd; /* TRUE for :doautocmd, FALSE for :autocmd */
{
char_u *p;
int group;
--- 9109,9115 ----
set_context_in_autocmd(xp, arg, doautocmd)
expand_T *xp;
char_u *arg;
! int doautocmd; /* TRUE for :doauto*, FALSE for :autocmd */
{
char_u *p;
int group;
*** ../vim-7.2.030/src/main.c Thu Sep 18 20:55:19 2008
--- src/main.c Sun Sep 14 13:26:10 2008
***************
*** 645,655 ****
#ifdef FEAT_VIMINFO
/*
! * Read in registers, history etc, but not marks, from the viminfo file
*/
if (*p_viminfo != NUL)
{
! read_viminfo(NULL, TRUE, FALSE, FALSE);
TIME_MSG("reading viminfo");
}
#endif
--- 645,656 ----
#ifdef FEAT_VIMINFO
/*
! * Read in registers, history etc, but not marks, from the viminfo file.
! * This is where v:oldfiles gets filled.
*/
if (*p_viminfo != NUL)
{
! read_viminfo(NULL, VIF_WANT_INFO | VIF_GET_OLDFILES);
TIME_MSG("reading viminfo");
}
#endif
*** ../vim-7.2.030/src/mark.c Sat Aug 9 19:37:29 2008
--- src/mark.c Sun Sep 14 13:46:19 2008
***************
*** 1627,1641 ****
/*
* Handle marks in the viminfo file:
! * fp_out == NULL read marks for current buffer only
! * fp_out != NULL copy marks for buffers not in buffer list
*/
void
! copy_viminfo_marks(virp, fp_out, count, eof)
vir_T *virp;
FILE *fp_out;
int count;
int eof;
{
char_u *line = virp->vir_line;
buf_T *buf;
--- 1627,1643 ----
/*
* Handle marks in the viminfo file:
! * fp_out != NULL: copy marks for buffers not in buffer list
! * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf only
! * fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles
*/
void
! copy_viminfo_marks(virp, fp_out, count, eof, flags)
vir_T *virp;
FILE *fp_out;
int count;
int eof;
+ int flags;
{
char_u *line = virp->vir_line;
buf_T *buf;
***************
*** 1647,1656 ****
--- 1649,1671 ----
char_u *p;
char_u *name_buf;
pos_T pos;
+ #ifdef FEAT_EVAL
+ list_T *list = NULL;
+ #endif
if ((name_buf = alloc(LSIZE)) == NULL)
return;
*name_buf = NUL;
+
+ #ifdef FEAT_EVAL
+ if (fp_out == NULL && (flags & (VIF_GET_OLDFILES | VIF_FORCEIT)))
+ {
+ list = list_alloc();
+ if (list != NULL)
+ set_vim_var_list(VV_OLDFILES, list);
+ }
+ #endif
+
num_marked_files = get_viminfo_parameter('\'');
while (!eof && (count < num_marked_files || fp_out == NULL))
{
***************
*** 1681,1686 ****
--- 1696,1706 ----
p++;
*p = NUL;
+ #ifdef FEAT_EVAL
+ if (list != NULL)
+ list_append_string(list, str, -1);
+ #endif
+
/*
* If fp_out == NULL, load marks for current buffer.
* If fp_out != NULL, copy marks for buffers not in buflist.
***************
*** 1688,1694 ****
load_marks = copy_marks_out = FALSE;
if (fp_out == NULL)
{
! if (curbuf->b_ffname != NULL)
{
if (*name_buf == NUL) /* only need to do this once */
home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE);
--- 1708,1714 ----
load_marks = copy_marks_out = FALSE;
if (fp_out == NULL)
{
! if ((flags & VIF_WANT_MARKS) && curbuf->b_ffname != NULL)
{
if (*name_buf == NUL) /* only need to do this once */
home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE);
*** ../vim-7.2.030/src/misc1.c Wed Jun 25 00:24:52 2008
--- src/misc1.c Sun Nov 9 11:47:00 2008
***************
*** 3245,3253 ****
/* When using ":silent" assume that <CR> was entered. */
if (mouse_used != NULL)
! MSG_PUTS(_("Type number or click with mouse (<Enter> cancels): "));
else
! MSG_PUTS(_("Choice number (<Enter> cancels): "));
/* Set the state such that text can be selected/copied/pasted and we still
* get mouse events. */
--- 3245,3253 ----
/* When using ":silent" assume that <CR> was entered. */
if (mouse_used != NULL)
! MSG_PUTS(_("Type number and <Enter> or click with mouse (empty cancels): "));
else
! MSG_PUTS(_("Type number and <Enter> (empty cancels): "));
/* Set the state such that text can be selected/copied/pasted and we still
* get mouse events. */
*** ../vim-7.2.030/src/proto/eval.pro Sun Jan 6 20:06:30 2008
--- src/proto/eval.pro Sun Nov 9 12:05:56 2008
***************
*** 17,23 ****
int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
int skip_expr __ARGS((char_u **pp));
! char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist));
char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
int eval_to_number __ARGS((char_u *expr));
list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
--- 17,23 ----
int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
int skip_expr __ARGS((char_u **pp));
! char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int convert));
char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
int eval_to_number __ARGS((char_u *expr));
list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
***************
*** 46,52 ****
--- 46,54 ----
void list_unref __ARGS((list_T *l));
void list_free __ARGS((list_T *l, int recurse));
dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
+ char_u *list_find_str __ARGS((list_T *l, long idx));
int list_append_dict __ARGS((list_T *list, dict_T *dict));
+ int list_append_string __ARGS((list_T *l, char_u *str, int len));
int garbage_collect __ARGS((void));
dict_T *dict_alloc __ARGS((void));
int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
***************
*** 58,65 ****
--- 60,69 ----
void set_vim_var_nr __ARGS((int idx, long val));
long get_vim_var_nr __ARGS((int idx));
char_u *get_vim_var_str __ARGS((int idx));
+ list_T *get_vim_var_list __ARGS((int idx));
void set_vcount __ARGS((long count, long count1));
void set_vim_var_string __ARGS((int idx, char_u *val, int len));
+ void set_vim_var_list __ARGS((int idx, list_T *val));
void set_reg_var __ARGS((int c));
char_u *v_exception __ARGS((char_u *oldval));
char_u *v_throwpoint __ARGS((char_u *oldval));
***************
*** 94,99 ****
--- 98,104 ----
void write_viminfo_varlist __ARGS((FILE *fp));
int store_session_globals __ARGS((FILE *fd));
void last_set_msg __ARGS((scid_T scriptID));
+ void ex_oldfiles __ARGS((exarg_T *eap));
int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen));
char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags));
/* vim: set ft=c : */
*** ../vim-7.2.030/src/proto/ex_cmds.pro Sat May 5 20:13:58 2007
--- src/proto/ex_cmds.pro Sat Sep 13 17:27:21 2008
***************
*** 11,17 ****
char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
! int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit));
void write_viminfo __ARGS((char_u *file, int forceit));
int viminfo_readline __ARGS((vir_T *virp));
char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
--- 11,17 ----
char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
! int read_viminfo __ARGS((char_u *file, int flags));
void write_viminfo __ARGS((char_u *file, int forceit));
int viminfo_readline __ARGS((vir_T *virp));
char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
*** ../vim-7.2.030/src/proto/mark.pro Sat May 5 19:29:37 2007
--- src/proto/mark.pro Sat Sep 13 18:06:20 2008
***************
*** 26,30 ****
void write_viminfo_filemarks __ARGS((FILE *fp));
int removable __ARGS((char_u *name));
int write_viminfo_marks __ARGS((FILE *fp_out));
! void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof));
/* vim: set ft=c : */
--- 26,30 ----
void write_viminfo_filemarks __ARGS((FILE *fp));
int removable __ARGS((char_u *name));
int write_viminfo_marks __ARGS((FILE *fp_out));
! void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof, int flags));
/* vim: set ft=c : */
*** ../vim-7.2.030/src/option.c Thu Oct 2 22:48:01 2008
--- src/option.c Fri Sep 26 22:20:20 2008
***************
*** 2593,2605 ****
#ifdef FEAT_VIMINFO
(char_u *)&p_viminfo, PV_NONE,
#if defined(MSDOS) || defined(MSWIN) || defined(OS2)
! {(char_u *)"", (char_u *)"'20,<50,s10,h,rA:,rB:"}
#else
# ifdef AMIGA
{(char_u *)"",
! (char_u *)"'20,<50,s10,h,rdf0:,rdf1:,rdf2:"}
# else
! {(char_u *)"", (char_u *)"'20,<50,s10,h"}
# endif
#endif
#else
--- 2593,2605 ----
#ifdef FEAT_VIMINFO
(char_u *)&p_viminfo, PV_NONE,
#if defined(MSDOS) || defined(MSWIN) || defined(OS2)
! {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"}
#else
# ifdef AMIGA
{(char_u *)"",
! (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"}
# else
! {(char_u *)"", (char_u *)"'100,<50,s10,h"}
# endif
#endif
#else
*** ../vim-7.2.030/src/structs.h Thu Jul 31 22:04:27 2008
--- src/structs.h Fri Sep 19 19:15:18 2008
***************
*** 459,465 ****
typedef struct
{
int hide; /* TRUE when ":hide" was used */
! # ifdef FEAT_BROWSE
int browse; /* TRUE to invoke file dialog */
# endif
# ifdef FEAT_WINDOWS
--- 459,465 ----
typedef struct
{
int hide; /* TRUE when ":hide" was used */
! # ifdef FEAT_BROWSE_CMD
int browse; /* TRUE to invoke file dialog */
# endif
# ifdef FEAT_WINDOWS
*** ../vim-7.2.030/src/vim.h Sat Aug 9 19:37:40 2008
--- src/vim.h Sat Sep 13 17:41:24 2008
***************
*** 1728,1734 ****
#define VV_MOUSE_COL 51
#define VV_OP 52
#define VV_SEARCHFORWARD 53
! #define VV_LEN 54 /* number of v: vars */
#ifdef FEAT_CLIPBOARD
--- 1728,1735 ----
#define VV_MOUSE_COL 51
#define VV_OP 52
#define VV_SEARCHFORWARD 53
! #define VV_OLDFILES 54
! #define VV_LEN 55 /* number of v: vars */
#ifdef FEAT_CLIPBOARD
***************
*** 2054,2057 ****
--- 2055,2064 ----
#define DOSO_VIMRC 1 /* loading vimrc file */
#define DOSO_GVIMRC 2 /* loading gvimrc file */
+ /* flags for read_viminfo() and children */
+ #define VIF_WANT_INFO 1 /* load non-mark info */
+ #define VIF_WANT_MARKS 2 /* load file marks */
+ #define VIF_FORCEIT 4 /* overwrite info already read */
+ #define VIF_GET_OLDFILES 8 /* load v:oldfiles */
+
#endif /* VIM__H */
*** ../vim-7.2.030/src/version.c Thu Nov 6 20:47:00 2008
--- src/version.c Sun Nov 9 13:39:19 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 31,
/**/
--
hundred-and-one symptoms of being an internet addict:
217. Your sex life has drastically improved...so what if it's only cyber-sex!
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.032 ---
To: vim-dev at vim.org
Subject: Patch 7.2.032
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.032 (after 7.2.031)
Problem: Can't build with EXITFREE defined. (Dominique Pelle)
Solution: Change vv_string to vv_str.
Files: src/eval.c
*** ../vim-7.2.031/src/eval.c Sun Nov 9 13:43:25 2008
--- src/eval.c Sun Nov 9 17:16:06 2008
***************
*** 846,853 ****
p = &vimvars[i];
if (p->vv_di.di_tv.v_type == VAR_STRING)
{
! vim_free(p->vv_string);
! p->vv_string = NULL;
}
else if (p->vv_di.di_tv.v_type == VAR_LIST)
{
--- 846,853 ----
p = &vimvars[i];
if (p->vv_di.di_tv.v_type == VAR_STRING)
{
! vim_free(p->vv_str);
! p->vv_str = NULL;
}
else if (p->vv_di.di_tv.v_type == VAR_LIST)
{
*** ../vim-7.2.031/src/version.c Sun Nov 9 13:43:25 2008
--- src/version.c Sun Nov 9 17:21:00 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 32,
/**/
--
hundred-and-one symptoms of being an internet addict:
218. Your spouse hands you a gift wrapped magnet with your PC's name
on it and you accuse him or her of genocide.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.033 ---
To: vim-dev at vim.org
Subject: Patch 7.2.033
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.033
Problem: When detecting a little endian BOM "ucs-2le" is used, but the text
might be "utf-16le".
Solution: Default to "utf-16le", it also works for "ucs-2le". (Jia Yanwei)
Files: src/fileio.c, src/testdir/test42.ok
*** ../vim-7.2.032/src/fileio.c Sun Nov 9 13:43:25 2008
--- src/fileio.c Mon Nov 3 21:21:47 2008
***************
*** 5550,5558 ****
name = "ucs-4le"; /* FF FE 00 00 */
len = 4;
}
! else if (flags == FIO_ALL || flags == (FIO_UCS2 | FIO_ENDIAN_L))
name = "ucs-2le"; /* FF FE */
! else if (flags == (FIO_UTF16 | FIO_ENDIAN_L))
name = "utf-16le"; /* FF FE */
}
else if (p[0] == 0xfe && p[1] == 0xff
--- 5550,5559 ----
name = "ucs-4le"; /* FF FE 00 00 */
len = 4;
}
! else if (flags == (FIO_UCS2 | FIO_ENDIAN_L))
name = "ucs-2le"; /* FF FE */
! else if (flags == FIO_ALL || flags == (FIO_UTF16 | FIO_ENDIAN_L))
! /* utf-16le is preferred, it also works for ucs-2le text */
name = "utf-16le"; /* FF FE */
}
else if (p[0] == 0xfe && p[1] == 0xff
*** ../vim-7.2.032/src/testdir/test42.ok Sat Mar 1 13:49:21 2008
--- src/testdir/test42.ok Sat Nov 1 17:09:29 2008
***************
*** 20,26 ****
ucs-2
! fileencoding=ucs-2le
bomb
ucs-2le
--- 20,26 ----
ucs-2
! fileencoding=utf-16le
bomb
ucs-2le
*** ../vim-7.2.032/src/version.c Sun Nov 9 17:21:10 2008
--- src/version.c Tue Nov 11 21:54:14 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 33,
/**/
--
hundred-and-one symptoms of being an internet addict:
234. You started college as a chemistry major, and walk out four years
later as an Internet provider.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.034 ---
To: vim-dev at vim.org
Subject: Patch 7.2.034
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.034
Problem: Memory leak in spell info when deleting buffer.
Solution: Free the memory. (Dominique Pelle)
Files: src/buffer.c
*** ../vim-7.2.033/src/buffer.c Mon Sep 1 17:32:40 2008
--- src/buffer.c Wed Nov 12 11:21:49 2008
***************
*** 647,652 ****
--- 647,655 ----
vim_free(buf->b_start_fenc);
buf->b_start_fenc = NULL;
#endif
+ #ifdef FEAT_SPELL
+ ga_clear(&buf->b_langp);
+ #endif
}
/*
***************
*** 1237,1243 ****
* "buf" if one exists */
if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf))
return OK;
! /* If 'switchbuf' contians "usetab": jump to first window in any tab
* page containing "buf" if one exists */
if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf))
return OK;
--- 1240,1246 ----
* "buf" if one exists */
if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf))
return OK;
! /* If 'switchbuf' contains "usetab": jump to first window in any tab
* page containing "buf" if one exists */
if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf))
return OK;
***************
*** 3964,3970 ****
width = vim_strsize(out);
if (maxwidth > 0 && width > maxwidth)
{
! /* Result is too long, must trunctate somewhere. */
l = 0;
if (itemcnt == 0)
s = out;
--- 3967,3973 ----
width = vim_strsize(out);
if (maxwidth > 0 && width > maxwidth)
{
! /* Result is too long, must truncate somewhere. */
l = 0;
if (itemcnt == 0)
s = out;
*** ../vim-7.2.033/src/version.c Tue Nov 11 21:55:29 2008
--- src/version.c Wed Nov 12 12:51:21 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 34,
/**/
--
hundred-and-one symptoms of being an internet addict:
236. You start saving URL's in your digital watch.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.035 ---
To: vim-dev at vim.org
Subject: Patch 7.2.035
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.035
Problem: Mismatches between alloc/malloc, free/vim_free,
realloc/vim_realloc.
Solution: Use the right function. (Dominique Pelle)
Files: src/gui_x11.c, src/mbyte.c, src/misc2.c, src/os_unix.c
*** ../vim-7.2.034/src/gui_x11.c Fri Jun 20 11:59:25 2008
--- src/gui_x11.c Wed Nov 12 11:47:03 2008
***************
*** 2450,2456 ****
*colorPtr = colortable[closest];
}
! free(colortable);
return OK;
}
--- 2450,2456 ----
*colorPtr = colortable[closest];
}
! vim_free(colortable);
return OK;
}
*** ../vim-7.2.034/src/mbyte.c Sat Sep 6 16:44:06 2008
--- src/mbyte.c Wed Nov 12 11:24:14 2008
***************
*** 5384,5390 ****
draw_feedback = (char *)alloc(draw_data->chg_first
+ text->length);
else
! draw_feedback = realloc(draw_feedback,
draw_data->chg_first + text->length);
if (draw_feedback != NULL)
{
--- 5384,5390 ----
draw_feedback = (char *)alloc(draw_data->chg_first
+ text->length);
else
! draw_feedback = vim_realloc(draw_feedback,
draw_data->chg_first + text->length);
if (draw_feedback != NULL)
{
*** ../vim-7.2.034/src/misc2.c Sat Sep 6 16:44:06 2008
--- src/misc2.c Wed Nov 12 11:42:51 2008
***************
*** 873,879 ****
/* 3. check for available memory: call mch_avail_mem() */
if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
{
! vim_free((char *)p); /* System is low... no go! */
p = NULL;
}
else
--- 873,879 ----
/* 3. check for available memory: call mch_avail_mem() */
if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
{
! free((char *)p); /* System is low... no go! */
p = NULL;
}
else
*** ../vim-7.2.034/src/os_unix.c Wed Aug 6 18:45:01 2008
--- src/os_unix.c Wed Nov 12 11:55:33 2008
***************
*** 2905,2911 ****
* Ignore any errors.
*/
#if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
! signal_stack = malloc(SIGSTKSZ);
init_signal_stack();
#endif
}
--- 2905,2911 ----
* Ignore any errors.
*/
#if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
! signal_stack = (char *)alloc(SIGSTKSZ);
init_signal_stack();
#endif
}
***************
*** 6814,6820 ****
if (xsmp_icefd != -1)
{
SmcCloseConnection(xsmp.smcconn, 0, NULL);
! vim_free(xsmp.clientid);
xsmp.clientid = NULL;
xsmp_icefd = -1;
}
--- 6815,6822 ----
if (xsmp_icefd != -1)
{
SmcCloseConnection(xsmp.smcconn, 0, NULL);
! if (xsmp.clientid != NULL)
! free(xsmp.clientid);
xsmp.clientid = NULL;
xsmp_icefd = -1;
}
*** ../vim-7.2.034/src/version.c Wed Nov 12 12:51:38 2008
--- src/version.c Wed Nov 12 13:05:40 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 35,
/**/
--
You can tune a file system, but you can't tuna fish
-- man tunefs
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.036 ---
To: vim-dev at vim.org
Subject: Patch 7.2.036 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.036 (extra)
Problem: Mismatches between alloc/malloc, free/vim_free,
realloc/vim_realloc.
Solution: Use the right function. (Dominique Pelle)
Files: src/gui_riscos.c, src/gui_w48.c, src/mbyte.c, src/os_vms.c,
src/os_w32exe.c, src/os_win16.c
*** ../vim-7.2.035/src/gui_riscos.c Thu May 10 19:33:26 2007
--- src/gui_riscos.c Wed Nov 12 11:47:54 2008
***************
*** 695,701 ****
gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
int width; /* In OS units */
int height;
! int min_width; /* Smallest permissable window size (ignored) */
int min_height;
int base_width; /* Space for scroll bars, etc */
int base_height;
--- 695,701 ----
gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
int width; /* In OS units */
int height;
! int min_width; /* Smallest permissible window size (ignored) */
int min_height;
int base_width; /* Space for scroll bars, etc */
int base_height;
***************
*** 863,869 ****
if (strncmp(file, "ZapFont\015", 8) == 0)
return file; /* Loaded OK! */
! free(file);
return NULL; /* Not a valid font file */
}
--- 863,869 ----
if (strncmp(file, "ZapFont\015", 8) == 0)
return file; /* Loaded OK! */
! vim_free(file);
return NULL; /* Not a valid font file */
}
*** ../vim-7.2.035/src/gui_w48.c Thu Jul 24 20:50:23 2008
--- src/gui_w48.c Wed Nov 12 11:37:41 2008
***************
*** 3335,3341 ****
/*
* Convert the string s to the proper format for a filter string by replacing
! * the \t and \n delimeters with \0.
* Returns the converted string in allocated memory.
*
* Keep in sync with convert_filterW() above!
--- 3335,3341 ----
/*
* Convert the string s to the proper format for a filter string by replacing
! * the \t and \n delimiters with \0.
* Returns the converted string in allocated memory.
*
* Keep in sync with convert_filterW() above!
***************
*** 3674,3680 ****
* Use "prog" as the name of the program and "cmdline" as the arguments.
* Copy the arguments to allocated memory.
* Return the number of arguments (including program name).
! * Return pointers to the arguments in "argvp".
* Return pointer to buffer in "tofree".
* Returns zero when out of memory.
*/
--- 3674,3681 ----
* Use "prog" as the name of the program and "cmdline" as the arguments.
* Copy the arguments to allocated memory.
* Return the number of arguments (including program name).
! * Return pointers to the arguments in "argvp". Memory is allocated with
! * malloc(), use free() instead of vim_free().
* Return pointer to buffer in "tofree".
* Returns zero when out of memory.
*/
***************
*** 3692,3697 ****
--- 3693,3700 ----
char **argv = NULL;
int round;
+ *tofree = NULL;
+
#ifdef FEAT_MBYTE
/* Try using the Unicode version first, it takes care of conversion when
* 'encoding' is changed. */
***************
*** 3802,3816 ****
argv = (char **)malloc((argc + 1) * sizeof(char *));
if (argv == NULL )
{
! vim_free(newcmdline);
return 0; /* malloc error */
}
pnew = newcmdline;
}
}
done:
-
argv[argc] = NULL; /* NULL-terminated list */
*argvp = argv;
return argc;
--- 3805,3819 ----
argv = (char **)malloc((argc + 1) * sizeof(char *));
if (argv == NULL )
{
! free(newcmdline);
return 0; /* malloc error */
}
pnew = newcmdline;
+ *tofree = newcmdline;
}
}
done:
argv[argc] = NULL; /* NULL-terminated list */
*argvp = argv;
return argc;
*** ../vim-7.2.035/src/os_vms.c Wed Aug 6 18:38:52 2008
--- src/os_vms.c Wed Nov 12 11:42:12 2008
***************
*** 228,234 ****
else if ((sbuf = getenv((char *)lognam)))
{
lengte = strlen(sbuf) + 1;
! cp = (char_u *)malloc((size_t)lengte);
if (cp)
strcpy((char *)cp, sbuf);
return cp;
--- 228,234 ----
else if ((sbuf = getenv((char *)lognam)))
{
lengte = strlen(sbuf) + 1;
! cp = (char_u *)alloc((size_t)lengte);
if (cp)
strcpy((char *)cp, sbuf);
return cp;
***************
*** 381,387 ****
if (--vms_match_free == 0) {
/* add more space to store matches */
vms_match_alloced += EXPL_ALLOC_INC;
! vms_fmatch = (char_u **)realloc(vms_fmatch,
sizeof(char **) * vms_match_alloced);
if (!vms_fmatch)
return 0;
--- 381,387 ----
if (--vms_match_free == 0) {
/* add more space to store matches */
vms_match_alloced += EXPL_ALLOC_INC;
! vms_fmatch = (char_u **)vim_realloc(vms_fmatch,
sizeof(char **) * vms_match_alloced);
if (!vms_fmatch)
return 0;
***************
*** 460,466 ****
if (--files_free < 1)
{
files_alloced += EXPL_ALLOC_INC;
! *file = (char_u **)realloc(*file,
sizeof(char_u **) * files_alloced);
if (*file == NULL)
{
--- 460,466 ----
if (--files_free < 1)
{
files_alloced += EXPL_ALLOC_INC;
! *file = (char_u **)vim_realloc(*file,
sizeof(char_u **) * files_alloced);
if (*file == NULL)
{
***************
*** 614,627 ****
{
buflen = len + 128;
if (buf)
! buf = (char *)realloc(buf, buflen);
else
! buf = (char *)calloc(buflen, sizeof(char));
}
#ifdef DEBUG
char *tmpbuf = NULL;
! tmpbuf = (char *)calloc(buflen, sizeof(char));
strcpy(tmpbuf, instring);
#endif
--- 614,627 ----
{
buflen = len + 128;
if (buf)
! buf = (char *)vim_realloc(buf, buflen);
else
! buf = (char *)alloc(buflen * sizeof(char));
}
#ifdef DEBUG
char *tmpbuf = NULL;
! tmpbuf = (char *)alloc(buflen * sizeof(char));
strcpy(tmpbuf, instring);
#endif
*** ../vim-7.2.035/src/os_w32exe.c Fri Jul 1 00:06:20 2005
--- src/os_w32exe.c Wed Nov 12 11:45:43 2008
***************
*** 129,135 ****
errout:
#endif
free(argv);
! free(tofree);
#ifdef FEAT_MBYTE
free_cmd_argsW();
#endif
--- 129,136 ----
errout:
#endif
free(argv);
! if (tofree != NULL)
! free(tofree);
#ifdef FEAT_MBYTE
free_cmd_argsW();
#endif
*** ../vim-7.2.035/src/os_win16.c Wed Jun 25 00:49:34 2008
--- src/os_win16.c Wed Nov 12 11:45:53 2008
***************
*** 121,127 ****
pmain(argc, argv);
free(argv);
! free(tofree);
return 0;
}
--- 121,128 ----
pmain(argc, argv);
free(argv);
! if (tofree != NULL)
! free(tofree);
return 0;
}
*** ../vim-7.2.035/src/version.c Wed Nov 12 13:07:48 2008
--- src/version.c Wed Nov 12 13:28:51 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 36,
/**/
--
hundred-and-one symptoms of being an internet addict:
239. You think "surfing" is something you do on dry land.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.037 ---
To: vim-dev at vim.org
Subject: Patch 7.2.037
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.037
Problem: Double free with GTK 1 and compiled with EXITFREE.
Solution: Don't close display. (Dominique Pelle)
Files: src/os_unix.c
*** ../vim-7.2.036/src/os_unix.c Wed Nov 12 13:07:48 2008
--- src/os_unix.c Wed Nov 12 11:55:33 2008
***************
*** 2936,2942 ****
}
# endif
# endif
! # ifdef FEAT_X11
if (x11_display != NULL
# ifdef FEAT_XCLIPBOARD
&& x11_display != xterm_dpy
--- 2936,2943 ----
}
# endif
# endif
! /* Don't close the display for GTK 1, it is done in exit(). */
! # if defined(FEAT_X11) && (!defined(FEAT_GUI_GTK) || defined(HAVE_GTK2))
if (x11_display != NULL
# ifdef FEAT_XCLIPBOARD
&& x11_display != xterm_dpy
*** ../vim-7.2.036/src/version.c Wed Nov 12 13:35:31 2008
--- src/version.c Wed Nov 12 14:08:56 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 37,
/**/
--
hundred-and-one symptoms of being an internet addict:
240. You think Webster's Dictionary is a directory of WEB sites.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.038 ---
To: vim-dev at vim.org
Subject: Patch 7.2.038
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.038
Problem: Overlapping arguments to memcpy().
Solution: Use mch_memmove(). (Dominique Pelle)
Files: src/if_xcmdsrv.c
*** ../vim-7.2.037/src/if_xcmdsrv.c Wed Aug 6 18:38:13 2008
--- src/if_xcmdsrv.c Wed Nov 12 12:09:01 2008
***************
*** 736,742 ****
+ serverReply.ga_len;
e.id = w;
ga_init2(&e.strings, 1, 100);
! memcpy(p, &e, sizeof(e));
serverReply.ga_len++;
}
}
--- 736,742 ----
+ serverReply.ga_len;
e.id = w;
ga_init2(&e.strings, 1, 100);
! mch_memmove(p, &e, sizeof(e));
serverReply.ga_len++;
}
}
***************
*** 1018,1024 ****
p++;
count = numItems - (p - regProp);
if (count > 0)
! memcpy(entry, p, count);
XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING,
8, PropModeReplace, regProp,
(int)(numItems - (p - entry)));
--- 1018,1024 ----
p++;
count = numItems - (p - regProp);
if (count > 0)
! mch_memmove(entry, p, count);
XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING,
8, PropModeReplace, regProp,
(int)(numItems - (p - entry)));
***************
*** 1072,1078 ****
p++;
lastHalf = numItems - (p - regProp);
if (lastHalf > 0)
! memcpy(entry, p, lastHalf);
numItems = (entry - regProp) + lastHalf;
p = entry;
continue;
--- 1072,1078 ----
p++;
lastHalf = numItems - (p - regProp);
if (lastHalf > 0)
! mch_memmove(entry, p, lastHalf);
numItems = (entry - regProp) + lastHalf;
p = entry;
continue;
*** ../vim-7.2.037/src/version.c Wed Nov 12 14:09:38 2008
--- src/version.c Wed Nov 12 14:51:00 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 38,
/**/
--
hundred-and-one symptoms of being an internet addict:
241. You try to look for Net Search even when you're in File Manager.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.039 ---
To: vim-dev at vim.org
Subject: Patch 7.2.039
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.039
Problem: Accessing freed memory on exit when EXITFREE is defined.
Solution: Call hash_init() on the v: hash table.
Files: src/eval.c
*** ../vim-7.2.038/src/eval.c Sun Nov 9 17:21:10 2008
--- src/eval.c Wed Nov 12 12:15:14 2008
***************
*** 856,861 ****
--- 856,862 ----
}
}
hash_clear(&vimvarht);
+ hash_init(&vimvarht); /* garbage_collect() will access it */
hash_clear(&compat_hashtab);
/* script-local variables */
*** ../vim-7.2.038/src/version.c Wed Nov 12 14:52:11 2008
--- src/version.c Wed Nov 12 15:09:39 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 39,
/**/
--
hundred-and-one symptoms of being an internet addict:
242. You turn down a better-paying job because it doesn't come with
a free e-mail account.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.040 ---
To: vim-dev at vim.org
Subject: Patch 7.2.040
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.040
Problem: When using ":e ++ff=dos fname" and the file contains a NL without
a CR before it and 'ffs' contains "unix" then the fileformat
becomes unix.
Solution: Ignore 'ffs' when using the ++ff argument. (Ben Schmidt)
Also remove unreachable code.
Files: src/fileio.c
*** ../vim-7.2.039/src/fileio.c Tue Nov 11 21:55:29 2008
--- src/fileio.c Wed Nov 12 13:19:42 2008
***************
*** 932,938 ****
--- 932,941 ----
else
{
if (eap != NULL && eap->force_ff != 0)
+ {
fileformat = get_fileformat_force(curbuf, eap);
+ try_unix = try_dos = try_mac = FALSE;
+ }
else if (curbuf->b_p_bin)
fileformat = EOL_UNIX; /* binary: use Unix format */
else if (*p_ffs == NUL)
***************
*** 2341,2351 ****
STRCAT(IObuff, _("[CR missing]"));
c = TRUE;
}
- if (ff_error == EOL_MAC)
- {
- STRCAT(IObuff, _("[NL found]"));
- c = TRUE;
- }
if (split)
{
STRCAT(IObuff, _("[long lines split]"));
--- 2344,2349 ----
*** ../vim-7.2.039/src/version.c Wed Nov 12 15:28:37 2008
--- src/version.c Wed Nov 12 16:03:44 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 40,
/**/
--
If you're sending someone Styrofoam, what do you pack it in?
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.041 ---
To: vim-dev at vim.org
Subject: Patch 7.2.041
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.041
Problem: In diff mode, when using two tabs, each with two diffed buffers,
editing a buffer of the other tab messes up the diff. (Matt
Mzyzik)
Solution: Only copy options from a window where the buffer was edited that
doesn't have 'diff' set or is for the current tab page.
Also fix that window options for a buffer are stored with the
wrong window.
Files: src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
src/ex_getln.c, src/if_sniff.c, src/main.c, src/netbeans.c,
src/normal.c, src/popupmnu.c, src/proto/buffer.pro,
src/proto/ex_cmds.pro src/quickfix.c, src/window.c
*** ../vim-7.2.040/src/buffer.c Wed Nov 12 12:51:38 2008
--- src/buffer.c Wed Nov 12 17:45:01 2008
***************
*** 33,39 ****
static char_u *fname_match __ARGS((regprog_T *prog, char_u *name));
#endif
static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options));
! static wininfo_T *find_wininfo __ARGS((buf_T *buf));
#ifdef UNIX
static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st));
static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp));
--- 33,39 ----
static char_u *fname_match __ARGS((regprog_T *prog, char_u *name));
#endif
static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options));
! static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer));
#ifdef UNIX
static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st));
static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp));
***************
*** 1093,1099 ****
#endif
setpcmark();
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
! forceit ? ECMD_FORCEIT : 0);
/*
* do_ecmd() may create a new buffer, then we have to delete
--- 1093,1099 ----
#endif
setpcmark();
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
! forceit ? ECMD_FORCEIT : 0, curwin);
/*
* do_ecmd() may create a new buffer, then we have to delete
***************
*** 1316,1322 ****
setpcmark();
if (!cmdmod.keepalt)
curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */
! buflist_altfpos(); /* remember curpos */
#ifdef FEAT_VISUAL
/* Don't restart Select mode after switching to another buffer. */
--- 1316,1322 ----
setpcmark();
if (!cmdmod.keepalt)
curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */
! buflist_altfpos(curwin); /* remember curpos */
#ifdef FEAT_VISUAL
/* Don't restart Select mode after switching to another buffer. */
***************
*** 2404,2425 ****
return;
}
/*
* Find info for the current window in buffer "buf".
* If not found, return the info for the most recently used window.
* Returns NULL when there isn't any info.
*/
static wininfo_T *
! find_wininfo(buf)
buf_T *buf;
{
wininfo_T *wip;
for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next)
! if (wip->wi_win == curwin)
break;
! if (wip == NULL) /* if no fpos for curwin, use the first in the list */
! wip = buf->b_wininfo;
return wip;
}
--- 2404,2473 ----
return;
}
+ #ifdef FEAT_DIFF
+ static int wininfo_other_tab_diff __ARGS((wininfo_T *wip));
+
+ /*
+ * Return TRUE when "wip" has 'diff' set and the diff is only for another tab
+ * page. That's because a diff is local to a tab page.
+ */
+ static int
+ wininfo_other_tab_diff(wip)
+ wininfo_T *wip;
+ {
+ win_T *wp;
+
+ if (wip->wi_opt.wo_diff)
+ {
+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ /* return FALSE when it's a window in the current tab page, thus
+ * the buffer was in diff mode here */
+ if (wip->wi_win == wp)
+ return FALSE;
+ return TRUE;
+ }
+ return FALSE;
+ }
+ #endif
+
/*
* Find info for the current window in buffer "buf".
* If not found, return the info for the most recently used window.
+ * When "skip_diff_buffer" is TRUE avoid windows with 'diff' set that is in
+ * another tab page.
* Returns NULL when there isn't any info.
*/
+ /*ARGSUSED*/
static wininfo_T *
! find_wininfo(buf, skip_diff_buffer)
buf_T *buf;
+ int skip_diff_buffer;
{
wininfo_T *wip;
for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next)
! if (wip->wi_win == curwin
! #ifdef FEAT_DIFF
! && (!skip_diff_buffer || !wininfo_other_tab_diff(wip))
! #endif
! )
break;
!
! /* If no wininfo for curwin, use the first in the list (that doesn't have
! * 'diff' set and is in another tab page). */
! if (wip == NULL)
! {
! #ifdef FEAT_DIFF
! if (skip_diff_buffer)
! {
! for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next)
! if (!wininfo_other_tab_diff(wip))
! break;
! }
! else
! #endif
! wip = buf->b_wininfo;
! }
return wip;
}
***************
*** 2440,2446 ****
clearFolding(curwin);
#endif
! wip = find_wininfo(buf);
if (wip != NULL && wip->wi_optset)
{
copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt);
--- 2488,2494 ----
clearFolding(curwin);
#endif
! wip = find_wininfo(buf, TRUE);
if (wip != NULL && wip->wi_optset)
{
copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt);
***************
*** 2472,2478 ****
wininfo_T *wip;
static pos_T no_position = {1, 0};
! wip = find_wininfo(buf);
if (wip != NULL)
return &(wip->wi_fpos);
else
--- 2520,2526 ----
wininfo_T *wip;
static pos_T no_position = {1, 0};
! wip = find_wininfo(buf, FALSE);
if (wip != NULL)
return &(wip->wi_fpos);
else
***************
*** 2793,2806 ****
#endif
/*
! * Set alternate cursor position for current window.
* Also save the local window option values.
*/
void
! buflist_altfpos()
{
! buflist_setfpos(curbuf, curwin, curwin->w_cursor.lnum,
! curwin->w_cursor.col, TRUE);
}
/*
--- 2841,2854 ----
#endif
/*
! * Set alternate cursor position for the current buffer and window "win".
* Also save the local window option values.
*/
void
! buflist_altfpos(win)
! win_T *win;
{
! buflist_setfpos(curbuf, win, win->w_cursor.lnum, win->w_cursor.col, TRUE);
}
/*
***************
*** 4492,4498 ****
ECMD_ONE,
((P_HID(curwin->w_buffer)
|| bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0)
! + ECMD_OLDBUF);
#ifdef FEAT_AUTOCMD
if (use_firstwin)
++autocmd_no_leave;
--- 4540,4546 ----
ECMD_ONE,
((P_HID(curwin->w_buffer)
|| bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0)
! + ECMD_OLDBUF, curwin);
#ifdef FEAT_AUTOCMD
if (use_firstwin)
++autocmd_no_leave;
*** ../vim-7.2.040/src/ex_cmds.c Sun Nov 9 13:43:25 2008
--- src/ex_cmds.c Wed Nov 12 22:41:41 2008
***************
*** 3052,3058 ****
retval = 0; /* it's in the same file */
}
else if (do_ecmd(fnum, ffname, sfname, NULL, lnum,
! (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0)) == OK)
retval = -1; /* opened another file */
else
retval = 1; /* error encountered */
--- 3052,3059 ----
retval = 0; /* it's in the same file */
}
else if (do_ecmd(fnum, ffname, sfname, NULL, lnum,
! (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0),
! curwin) == OK)
retval = -1; /* opened another file */
else
retval = 1; /* error encountered */
***************
*** 3085,3101 ****
* ECMD_OLDBUF: use existing buffer if it exists
* ECMD_FORCEIT: ! used for Ex command
* ECMD_ADDBUF: don't edit, just add to buffer list
*
* return FAIL for failure, OK otherwise
*/
int
! do_ecmd(fnum, ffname, sfname, eap, newlnum, flags)
int fnum;
char_u *ffname;
char_u *sfname;
exarg_T *eap; /* can be NULL! */
linenr_T newlnum;
int flags;
{
int other_file; /* TRUE if editing another file */
int oldbuf; /* TRUE if using existing buffer */
--- 3086,3106 ----
* ECMD_OLDBUF: use existing buffer if it exists
* ECMD_FORCEIT: ! used for Ex command
* ECMD_ADDBUF: don't edit, just add to buffer list
+ * oldwin: Should be "curwin" when editing a new buffer in the current
+ * window, NULL when splitting the window first. When not NULL info
+ * of the previous buffer for "oldwin" is stored.
*
* return FAIL for failure, OK otherwise
*/
int
! do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin)
int fnum;
char_u *ffname;
char_u *sfname;
exarg_T *eap; /* can be NULL! */
linenr_T newlnum;
int flags;
+ win_T *oldwin;
{
int other_file; /* TRUE if editing another file */
int oldbuf; /* TRUE if using existing buffer */
***************
*** 3267,3273 ****
{
if (!cmdmod.keepalt)
curwin->w_alt_fnum = curbuf->b_fnum;
! buflist_altfpos();
}
if (fnum)
--- 3272,3279 ----
{
if (!cmdmod.keepalt)
curwin->w_alt_fnum = curbuf->b_fnum;
! if (oldwin != NULL)
! buflist_altfpos(oldwin);
}
if (fnum)
***************
*** 3371,3377 ****
/* close the link to the current buffer */
u_sync(FALSE);
! close_buffer(curwin, curbuf,
(flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
#ifdef FEAT_AUTOCMD
--- 3377,3383 ----
/* close the link to the current buffer */
u_sync(FALSE);
! close_buffer(oldwin, curbuf,
(flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
#ifdef FEAT_AUTOCMD
***************
*** 5609,5615 ****
*/
alt_fnum = curbuf->b_fnum;
(void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL,
! ECMD_HIDE + ECMD_SET_HELP);
if (!cmdmod.keepalt)
curwin->w_alt_fnum = alt_fnum;
empty_fnum = curbuf->b_fnum;
--- 5615,5627 ----
*/
alt_fnum = curbuf->b_fnum;
(void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL,
! ECMD_HIDE + ECMD_SET_HELP,
! #ifdef FEAT_WINDOWS
! NULL /* buffer is still open, don't store info */
! #else
! curwin
! #endif
! );
if (!cmdmod.keepalt)
curwin->w_alt_fnum = alt_fnum;
empty_fnum = curbuf->b_fnum;
*** ../vim-7.2.040/src/ex_cmds2.c Sun Sep 7 15:49:45 2008
--- src/ex_cmds2.c Wed Nov 12 17:46:41 2008
***************
*** 2132,2139 ****
* argument index. */
if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL,
eap, ECMD_LAST,
! (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) +
! (eap->forceit ? ECMD_FORCEIT : 0)) == FAIL)
curwin->w_arg_idx = old_arg_idx;
/* like Vi: set the mark where the cursor is in the file. */
else if (eap->cmdidx != CMD_argdo)
--- 2132,2139 ----
* argument index. */
if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL,
eap, ECMD_LAST,
! (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0)
! + (eap->forceit ? ECMD_FORCEIT : 0), curwin) == FAIL)
curwin->w_arg_idx = old_arg_idx;
/* like Vi: set the mark where the cursor is in the file. */
else if (eap->cmdidx != CMD_argdo)
*** ../vim-7.2.040/src/ex_docmd.c Sun Nov 9 13:43:25 2008
--- src/ex_docmd.c Wed Nov 12 18:04:22 2008
***************
*** 7488,7494 ****
/* ":new" or ":tabnew" without argument: edit an new empty buffer */
setpcmark();
(void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE,
! ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0));
}
else if ((eap->cmdidx != CMD_split
#ifdef FEAT_VERTSPLIT
--- 7488,7495 ----
/* ":new" or ":tabnew" without argument: edit an new empty buffer */
setpcmark();
(void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE,
! ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0),
! old_curwin == NULL ? curwin : NULL);
}
else if ((eap->cmdidx != CMD_split
#ifdef FEAT_VERTSPLIT
***************
*** 7525,7531 ****
#ifdef FEAT_LISTCMDS
+ (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 )
#endif
! ) == FAIL)
{
/* Editing the file failed. If the window was split, close it. */
#ifdef FEAT_WINDOWS
--- 7526,7532 ----
#ifdef FEAT_LISTCMDS
+ (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 )
#endif
! , old_curwin == NULL ? curwin : NULL) == FAIL)
{
/* Editing the file failed. If the window was split, close it. */
#ifdef FEAT_WINDOWS
*** ../vim-7.2.040/src/ex_getln.c Sun Sep 14 14:41:44 2008
--- src/ex_getln.c Wed Nov 12 18:06:25 2008
***************
*** 6051,6057 ****
cmdwin_type = '-';
/* Create the command-line buffer empty. */
! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE);
(void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE);
set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL);
set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
--- 6051,6057 ----
cmdwin_type = '-';
/* Create the command-line buffer empty. */
! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL);
(void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE);
set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL);
set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
*** ../vim-7.2.040/src/if_sniff.c Sat Aug 9 19:41:16 2008
--- src/if_sniff.c Wed Nov 12 17:48:46 2008
***************
*** 1114,1120 ****
char *fname;
{
++no_wait_return;
! do_ecmd(0, (char_u *)fname, NULL, NULL, ECMD_ONE, ECMD_HIDE+ECMD_OLDBUF);
curbuf->b_sniff = TRUE;
--no_wait_return; /* [ex_docmd.c] */
}
--- 1114,1121 ----
char *fname;
{
++no_wait_return;
! do_ecmd(0, (char_u *)fname, NULL, NULL, ECMD_ONE, ECMD_HIDE+ECMD_OLDBUF,
! curwin);
curbuf->b_sniff = TRUE;
--no_wait_return; /* [ex_docmd.c] */
}
*** ../vim-7.2.040/src/main.c Sun Nov 9 13:43:25 2008
--- src/main.c Wed Nov 12 17:49:06 2008
***************
*** 2588,2594 ****
# endif
(void)do_ecmd(0, arg_idx < GARGCOUNT
? alist_name(&GARGLIST[arg_idx]) : NULL,
! NULL, NULL, ECMD_LASTL, ECMD_HIDE);
# ifdef HAS_SWAP_EXISTS_ACTION
if (swap_exists_did_quit)
{
--- 2588,2594 ----
# endif
(void)do_ecmd(0, arg_idx < GARGCOUNT
? alist_name(&GARGLIST[arg_idx]) : NULL,
! NULL, NULL, ECMD_LASTL, ECMD_HIDE, curwin);
# ifdef HAS_SWAP_EXISTS_ACTION
if (swap_exists_did_quit)
{
*** ../vim-7.2.040/src/netbeans.c Sun Jul 13 19:18:03 2008
--- src/netbeans.c Wed Nov 12 17:49:40 2008
***************
*** 1795,1801 ****
buf->displayname = NULL;
netbeansReadFile = 0; /* don't try to open disk file */
! do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF);
netbeansReadFile = 1;
buf->bufp = curbuf;
maketitle();
--- 1795,1801 ----
buf->displayname = NULL;
netbeansReadFile = 0; /* don't try to open disk file */
! do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin);
netbeansReadFile = 1;
buf->bufp = curbuf;
maketitle();
***************
*** 1960,1966 ****
netbeansReadFile = 0; /* don't try to open disk file */
do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE,
! ECMD_HIDE + ECMD_OLDBUF);
netbeansReadFile = 1;
buf->bufp = curbuf;
maketitle();
--- 1960,1966 ----
netbeansReadFile = 0; /* don't try to open disk file */
do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE,
! ECMD_HIDE + ECMD_OLDBUF, curwin);
netbeansReadFile = 1;
buf->bufp = curbuf;
maketitle();
***************
*** 1979,1985 ****
vim_free(buf->displayname);
buf->displayname = nb_unquote(args, NULL);
do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE,
! ECMD_HIDE + ECMD_OLDBUF);
buf->bufp = curbuf;
buf->initDone = TRUE;
doupdate = 1;
--- 1979,1985 ----
vim_free(buf->displayname);
buf->displayname = nb_unquote(args, NULL);
do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE,
! ECMD_HIDE + ECMD_OLDBUF, curwin);
buf->bufp = curbuf;
buf->initDone = TRUE;
doupdate = 1;
*** ../vim-7.2.040/src/normal.c Sat Nov 1 13:51:57 2008
--- src/normal.c Wed Nov 12 17:49:50 2008
***************
*** 6050,6056 ****
autowrite(curbuf, FALSE);
setpcmark();
(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST,
! P_HID(curbuf) ? ECMD_HIDE : 0);
if (cap->nchar == 'F' && lnum >= 0)
{
curwin->w_cursor.lnum = lnum;
--- 6050,6056 ----
autowrite(curbuf, FALSE);
setpcmark();
(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST,
! P_HID(curbuf) ? ECMD_HIDE : 0, curwin);
if (cap->nchar == 'F' && lnum >= 0)
{
curwin->w_cursor.lnum = lnum;
*** ../vim-7.2.040/src/popupmnu.c Sun Jul 13 19:33:51 2008
--- src/popupmnu.c Wed Nov 12 18:08:07 2008
***************
*** 573,579 ****
{
/* Don't want to sync undo in the current buffer. */
++no_u_sync;
! res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0);
--no_u_sync;
if (res == OK)
{
--- 573,579 ----
{
/* Don't want to sync undo in the current buffer. */
++no_u_sync;
! res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0, NULL);
--no_u_sync;
if (res == OK)
{
*** ../vim-7.2.040/src/proto/buffer.pro Sun May 6 13:57:53 2007
--- src/proto/buffer.pro Wed Nov 12 17:43:39 2008
***************
*** 33,39 ****
char_u *getaltfname __ARGS((int errmsg));
int buflist_add __ARGS((char_u *fname, int flags));
void buflist_slash_adjust __ARGS((void));
! void buflist_altfpos __ARGS((void));
int otherfile __ARGS((char_u *ffname));
void buf_setino __ARGS((buf_T *buf));
void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate));
--- 33,39 ----
char_u *getaltfname __ARGS((int errmsg));
int buflist_add __ARGS((char_u *fname, int flags));
void buflist_slash_adjust __ARGS((void));
! void buflist_altfpos __ARGS((win_T *win));
int otherfile __ARGS((char_u *ffname));
void buf_setino __ARGS((buf_T *buf));
void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate));
*** ../vim-7.2.040/src/proto/ex_cmds.pro Sun Nov 9 13:43:25 2008
--- src/proto/ex_cmds.pro Wed Nov 12 17:44:27 2008
***************
*** 27,33 ****
void do_wqall __ARGS((exarg_T *eap));
int not_writing __ARGS((void));
int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit));
! int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags));
void ex_append __ARGS((exarg_T *eap));
void ex_change __ARGS((exarg_T *eap));
void ex_z __ARGS((exarg_T *eap));
--- 27,33 ----
void do_wqall __ARGS((exarg_T *eap));
int not_writing __ARGS((void));
int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit));
! int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags, win_T *oldwin));
void ex_append __ARGS((exarg_T *eap));
void ex_change __ARGS((exarg_T *eap));
void ex_z __ARGS((exarg_T *eap));
*** ../vim-7.2.040/src/quickfix.c Thu Jul 24 18:44:59 2008
--- src/quickfix.c Wed Nov 12 18:12:00 2008
***************
*** 1420,1425 ****
--- 1420,1426 ----
win_T *win;
win_T *altwin;
#endif
+ win_T *oldwin = curwin;
int print_message = TRUE;
int len;
#ifdef FEAT_FOLDING
***************
*** 1744,1750 ****
}
else
ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1,
! ECMD_HIDE + ECMD_SET_HELP);
}
else
ok = buflist_getfile(qf_ptr->qf_fnum,
--- 1745,1752 ----
}
else
ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1,
! ECMD_HIDE + ECMD_SET_HELP,
! oldwin == curwin ? curwin : NULL);
}
else
ok = buflist_getfile(qf_ptr->qf_fnum,
***************
*** 2267,2272 ****
--- 2269,2275 ----
win_T *win;
tabpage_T *prevtab = curtab;
buf_T *qf_buf;
+ win_T *oldwin = curwin;
if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
{
***************
*** 2326,2339 ****
win->w_llist->qf_refcount++;
}
if (qf_buf != NULL)
/* Use the existing quickfix buffer */
(void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE,
! ECMD_HIDE + ECMD_OLDBUF);
else
{
/* Create a new quickfix buffer */
! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE);
/* switch off 'swapfile' */
set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
--- 2329,2344 ----
win->w_llist->qf_refcount++;
}
+ if (oldwin != curwin)
+ oldwin = NULL; /* don't store info when in another window */
if (qf_buf != NULL)
/* Use the existing quickfix buffer */
(void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE,
! ECMD_HIDE + ECMD_OLDBUF, oldwin);
else
{
/* Create a new quickfix buffer */
! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, oldwin);
/* switch off 'swapfile' */
set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
*** ../vim-7.2.040/src/window.c Wed Aug 6 18:32:11 2008
--- src/window.c Wed Nov 12 18:12:37 2008
***************
*** 531,537 ****
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
! (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, ECMD_HIDE);
if (nchar == 'F' && lnum >= 0)
{
curwin->w_cursor.lnum = lnum;
--- 531,538 ----
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
! (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
! ECMD_HIDE, NULL);
if (nchar == 'F' && lnum >= 0)
{
curwin->w_cursor.lnum = lnum;
*** ../vim-7.2.040/src/version.c Wed Nov 12 16:04:43 2008
--- src/version.c Wed Nov 12 16:54:35 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 41,
/**/
--
hundred-and-one symptoms of being an internet addict:
260. Co-workers have to E-mail you about the fire alarm to get
you out of the building.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.042 ---
To: vim-dev at vim.org
Subject: Patch 7.2.042
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.042
Problem: When using winrestview() in a BufWinEnter autocommand the window
is scrolled anyway. (Matt Zyzik)
Solution: Don't recompute topline when above 'scrolloff' from the bottom.
Don't always put the cursor halfway when entering a buffer. Add
"w_topline_was_set".
Files: src/buffer.c, src/move.c, src/structs.h
*** ../vim-7.2.041/src/buffer.c Sat Nov 15 14:10:23 2008
--- src/buffer.c Sat Nov 15 14:58:52 2008
***************
*** 1401,1406 ****
--- 1401,1409 ----
curwin->w_cursor.coladd = 0;
#endif
curwin->w_set_curswant = TRUE;
+ #ifdef FEAT_AUTOCMD
+ curwin->w_topline_was_set = FALSE;
+ #endif
/* Make sure the buffer is loaded. */
if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */
***************
*** 1440,1446 ****
maketitle();
#endif
#ifdef FEAT_AUTOCMD
! if (curwin->w_topline == 1) /* when autocmds didn't change it */
#endif
scroll_cursor_halfway(FALSE); /* redisplay at correct position */
--- 1443,1450 ----
maketitle();
#endif
#ifdef FEAT_AUTOCMD
! /* when autocmds didn't change it */
! if (curwin->w_topline == 1 && !curwin->w_topline_was_set)
#endif
scroll_cursor_halfway(FALSE); /* redisplay at correct position */
*** ../vim-7.2.041/src/move.c Sun Jul 13 19:25:23 2008
--- src/move.c Sat Nov 15 14:56:47 2008
***************
*** 280,297 ****
if (curwin->w_botline <= curbuf->b_ml.ml_line_count)
{
! if (curwin->w_cursor.lnum < curwin->w_botline
! && ((long)curwin->w_cursor.lnum
>= (long)curwin->w_botline - p_so
#ifdef FEAT_FOLDING
|| hasAnyFolding(curwin)
#endif
))
! {
lineoff_T loff;
! /* Cursor is above botline, check if there are 'scrolloff'
! * window lines below the cursor. If not, need to scroll. */
n = curwin->w_empty_rows;
loff.lnum = curwin->w_cursor.lnum;
#ifdef FEAT_FOLDING
--- 280,299 ----
if (curwin->w_botline <= curbuf->b_ml.ml_line_count)
{
! if (curwin->w_cursor.lnum < curwin->w_botline)
! {
! if (((long)curwin->w_cursor.lnum
>= (long)curwin->w_botline - p_so
#ifdef FEAT_FOLDING
|| hasAnyFolding(curwin)
#endif
))
! {
lineoff_T loff;
! /* Cursor is (a few lines) above botline, check if there are
! * 'scrolloff' window lines below the cursor. If not, need to
! * scroll. */
n = curwin->w_empty_rows;
loff.lnum = curwin->w_cursor.lnum;
#ifdef FEAT_FOLDING
***************
*** 317,322 ****
--- 319,328 ----
if (n >= p_so)
/* sufficient context, no need to scroll */
check_botline = FALSE;
+ }
+ else
+ /* sufficient context, no need to scroll */
+ check_botline = FALSE;
}
if (check_botline)
{
***************
*** 509,514 ****
--- 515,523 ----
/* Approximate the value of w_botline */
wp->w_botline += lnum - wp->w_topline;
wp->w_topline = lnum;
+ #ifdef FEAT_AUTOCMD
+ wp->w_topline_was_set = TRUE;
+ #endif
#ifdef FEAT_DIFF
wp->w_topfill = 0;
#endif
*** ../vim-7.2.041/src/structs.h Sun Nov 9 13:43:25 2008
--- src/structs.h Sat Nov 15 14:56:42 2008
***************
*** 1784,1793 ****
#endif
/*
! * The next three specify the offsets for displaying the buffer:
*/
linenr_T w_topline; /* buffer line number of the line at the
top of the window */
#ifdef FEAT_DIFF
int w_topfill; /* number of filler lines above w_topline */
int w_old_topfill; /* w_topfill at last redraw */
--- 1784,1798 ----
#endif
/*
! * "w_topline", "w_leftcol" and "w_skipcol" specify the offsets for
! * displaying the buffer.
*/
linenr_T w_topline; /* buffer line number of the line at the
top of the window */
+ #ifdef FEAT_AUTOCMD
+ char w_topline_was_set; /* flag set to TRUE when topline is set,
+ e.g. by winrestview() */
+ #endif
#ifdef FEAT_DIFF
int w_topfill; /* number of filler lines above w_topline */
int w_old_topfill; /* w_topfill at last redraw */
*** ../vim-7.2.041/src/version.c Sat Nov 15 14:10:23 2008
--- src/version.c Sat Nov 15 16:01:29 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 42,
/**/
--
hundred-and-one symptoms of being an internet addict:
261. You find diskettes in your pockets when doing laundry.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.043 ---
To: vim-dev at vim.org
Subject: Patch 7.2.043
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.043
Problem: VMS: Too many characters are escaped in filename and shell
commands.
Solution: Escape fewer characters. (Zoltan Arpadffy)
Files: src/vim.h
*** ../vim-7.2.042/src/vim.h Sun Nov 9 13:43:25 2008
--- src/vim.h Fri Nov 14 21:41:17 2008
***************
*** 341,348 ****
#ifdef BACKSLASH_IN_FILENAME
# define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'\"|!<")
#else
! # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<")
! # define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<>();&")
#endif
#define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */
--- 341,354 ----
#ifdef BACKSLASH_IN_FILENAME
# define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'\"|!<")
#else
! # ifdef VMS
! /* VMS allows a lot of characters in the file name */
! # define PATH_ESC_CHARS ((char_u *)" \t\n*?{`\\%#'\"|!")
! # define SHELL_ESC_CHARS ((char_u *)" \t\n*?{`\\%#'|!()&")
! # else
! # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<")
! # define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<>();&")
! # endif
#endif
#define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */
***************
*** 370,376 ****
* Define __w64 as an empty token for everything but MSVC 7.x or later.
*/
# if !defined(_MSC_VER) || (_MSC_VER < 1300)
! # define __w64
# endif
typedef unsigned long __w64 long_u;
typedef long __w64 long_i;
--- 376,382 ----
* Define __w64 as an empty token for everything but MSVC 7.x or later.
*/
# if !defined(_MSC_VER) || (_MSC_VER < 1300)
! # define __w64
# endif
typedef unsigned long __w64 long_u;
typedef long __w64 long_i;
*** ../vim-7.2.042/src/version.c Sat Nov 15 16:05:30 2008
--- src/version.c Thu Nov 20 10:23:51 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 43,
/**/
--
In his lifetime van Gogh painted 486 oil paintings. Oddly enough, 8975
of them are to be found in the United States.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.044 ---
To: vim-dev at vim.org
Subject: Patch 7.2.044
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.044
Problem: Crash because of STRCPY() being over protective of the destination
size. (Dominique Pelle)
Solution: Add -D_FORTIFY_SOURCE=1 to CFLAGS. Use an intermediate variable
for the pointer to avoid a warning.
Files: src/auto/configure, src/configure.in, src/eval.c
*** ../vim-7.2.043/src/auto/configure Thu Jul 24 17:20:50 2008
--- src/auto/configure Sun Nov 16 17:08:44 2008
***************
*** 16819,16839 ****
LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
fi
- { $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5
- $as_echo_n "checking for GCC 3 or later... " >&6; }
DEPEND_CFLAGS_FILTER=
if test "$GCC" = yes; then
gccmajor=`echo "$gccversion" | sed -e 's/^\([1-9]\)\..*$/\1/g'`
if test "$gccmajor" -gt "2"; then
DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
! fi
! fi
! if test "$DEPEND_CFLAGS_FILTER" = ""; then
! { $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
! else
! { $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
fi
--- 16819,16847 ----
LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
fi
DEPEND_CFLAGS_FILTER=
if test "$GCC" = yes; then
+ { $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5
+ $as_echo_n "checking for GCC 3 or later... " >&6; }
gccmajor=`echo "$gccversion" | sed -e 's/^\([1-9]\)\..*$/\1/g'`
if test "$gccmajor" -gt "2"; then
DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
! { $as_echo "$as_me:$LINENO: result: yes" >&5
! $as_echo "yes" >&6; }
! else
! { $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
! fi
! { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5
! $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
! if test "$gccmajor" -gt "3"; then
! CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
! { $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
fi
*** ../vim-7.2.043/src/configure.in Thu Jul 24 17:20:31 2008
--- src/configure.in Sun Nov 16 17:08:40 2008
***************
*** 3152,3169 ****
dnl But only when making dependencies, cproto and lint don't take "-isystem".
dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
dnl the number before the version number.
- AC_MSG_CHECKING(for GCC 3 or later)
DEPEND_CFLAGS_FILTER=
if test "$GCC" = yes; then
gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
if test "$gccmajor" -gt "2"; then
DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
fi
- fi
- if test "$DEPEND_CFLAGS_FILTER" = ""; then
- AC_MSG_RESULT(no)
- else
- AC_MSG_RESULT(yes)
fi
AC_SUBST(DEPEND_CFLAGS_FILTER)
--- 3152,3176 ----
dnl But only when making dependencies, cproto and lint don't take "-isystem".
dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
dnl the number before the version number.
DEPEND_CFLAGS_FILTER=
if test "$GCC" = yes; then
+ AC_MSG_CHECKING(for GCC 3 or later)
gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
if test "$gccmajor" -gt "2"; then
DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+ if test "$gccmajor" -gt "3"; then
+ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
fi
fi
AC_SUBST(DEPEND_CFLAGS_FILTER)
*** ../vim-7.2.043/src/eval.c Wed Nov 12 15:28:37 2008
--- src/eval.c Sun Nov 16 20:46:28 2008
***************
*** 21150,21157 ****
init_var_dict(&fc.l_avars, &fc.l_avars_var);
add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0",
(varnumber_T)(argcount - fp->uf_args.ga_len));
v = &fc.fixvar[fixvar_idx++].var;
! STRCPY(v->di_key, "000");
v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX;
hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v));
v->di_tv.v_type = VAR_LIST;
--- 21150,21160 ----
init_var_dict(&fc.l_avars, &fc.l_avars_var);
add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0",
(varnumber_T)(argcount - fp->uf_args.ga_len));
+ /* Use "name" to avoid a warning from some compiler that checks the
+ * destination size. */
v = &fc.fixvar[fixvar_idx++].var;
! name = v->di_key;
! STRCPY(name, "000");
v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX;
hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v));
v->di_tv.v_type = VAR_LIST;
*** ../vim-7.2.043/src/version.c Thu Nov 20 10:26:19 2008
--- src/version.c Thu Nov 20 10:34:31 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 44,
/**/
--
Error:015 - Unable to exit Windows. Try the door.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.045 ---
To: vim-dev at vim.org
Subject: Patch 7.2.045
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.045
Problem: The Python interface has an empty entry in sys.path.
Solution: Filter out the empty entry. (idea from James Vega)
Files: src/if_python.c
*** ../vim-7.2.044/src/if_python.c Thu Jul 24 16:24:48 2008
--- src/if_python.c Thu Nov 20 11:03:53 2008
***************
*** 531,536 ****
--- 531,542 ----
if (PythonMod_Init())
goto fail;
+ /* Remove the element from sys.path that was added because of our
+ * argv[0] value in PythonMod_Init(). Previously we used an empty
+ * string, but dependinding on the OS we then get an empty entry or
+ * the current directory in sys.path. */
+ PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)");
+
/* the first python thread is vim's, release the lock */
Python_SaveThread();
***************
*** 2345,2351 ****
{
PyObject *mod;
PyObject *dict;
! static char *(argv[2]) = {"", NULL};
/* Fixups... */
BufferType.ob_type = &PyType_Type;
--- 2351,2358 ----
{
PyObject *mod;
PyObject *dict;
! /* The special value is removed from sys.path in Python_Init(). */
! static char *(argv[2]) = {"/must>not&exist/foo", NULL};
/* Fixups... */
BufferType.ob_type = &PyType_Type;
*** ../vim-7.2.044/src/version.c Thu Nov 20 10:36:04 2008
--- src/version.c Thu Nov 20 10:58:11 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 45,
/**/
--
press CTRL-ALT-DEL for more information
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.046 ---
To: vim-dev at vim.org
Subject: Patch 7.2.046
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.046
Problem: Wrong check for filling buffer with encoding. (Danek Duvall)
Solution: Remove pointers. (Dominique Pelle)
Files: src/mbyte.c
*** ../vim-7.2.045/src/mbyte.c Wed Nov 12 13:07:48 2008
--- src/mbyte.c Wed Nov 19 21:44:50 2008
***************
*** 3131,3137 ****
else
s = p + 1;
}
! for (i = 0; s[i] != NUL && s + i < buf + sizeof(buf) - 1; ++i)
{
if (s[i] == '_' || s[i] == '-')
buf[i] = '-';
--- 3131,3137 ----
else
s = p + 1;
}
! for (i = 0; s[i] != NUL && i < sizeof(buf) - 1; ++i)
{
if (s[i] == '_' || s[i] == '-')
buf[i] = '-';
*** ../vim-7.2.045/src/version.c Thu Nov 20 11:04:01 2008
--- src/version.c Thu Nov 20 11:54:23 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 46,
/**/
--
He was not in the least bit scared to be mashed into a pulp
Or to have his eyes gouged out and his elbows broken;
To have his kneecaps split and his body burned away
And his limbs all hacked and mangled, brave Sir Robin.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.047 ---
To: vim-dev at vim.org
Subject: Patch 7.2.047
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.047
Problem: Starting Vim with the -nb argument while it's not supported causes
the other side to hang.
Solution: When -nb is used while it's not supported exit Vim. (Xavier de
Gaye)
Files: src/main.c, src/vim.h
*** ../vim-7.2.046/src/main.c Sat Nov 15 14:10:23 2008
--- src/main.c Thu Nov 20 14:09:27 2008
***************
*** 1510,1516 ****
early_arg_scan(parmp)
mparm_T *parmp;
{
! #if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER)
int argc = parmp->argc;
char **argv = parmp->argv;
int i;
--- 1510,1517 ----
early_arg_scan(parmp)
mparm_T *parmp;
{
! #if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) \
! || !defined(FEAT_NETBEANS_INTG)
int argc = parmp->argc;
char **argv = parmp->argv;
int i;
***************
*** 1582,1587 ****
--- 1583,1596 ----
else if (STRICMP(argv[i], "--echo-wid") == 0)
echo_wid_arg = TRUE;
# endif
+ # ifndef FEAT_NETBEANS_INTG
+ else if (strncmp(argv[i], "-nb", (size_t)3) == 0)
+ {
+ mch_errmsg(_("'-nb' cannot be used: not enabled at compile time\n"));
+ mch_exit(2);
+ }
+ # endif
+
}
#endif
}
*** ../vim-7.2.046/src/vim.h Thu Nov 20 10:26:19 2008
--- src/vim.h Thu Nov 20 12:06:14 2008
***************
*** 1986,1991 ****
--- 1986,1994 ----
# endif
#endif
+ #ifndef FEAT_NETBEANS_INTG
+ # undef NBDEBUG
+ #endif
#ifdef NBDEBUG /* Netbeans debugging. */
# include "nbdebug.h"
#else
*** ../vim-7.2.046/src/version.c Thu Nov 20 11:55:53 2008
--- src/version.c Thu Nov 20 14:07:57 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 47,
/**/
--
FIRST HEAD: Oh! quick! get the sword out I want to cut his head off.
THIRD HEAD: Oh, cut your own head off.
SECOND HEAD: Yes - do us all a favour.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.048 ---
To: vim-dev at vim.org
Subject: Patch 7.2.048
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.048
Problem: v:prevcount is changed too often. Counts are not multiplied when
setting v:count.
Solution: Set v:prevcount properly. Multiply counts. (idea by Ben Schmidt)
Files: src/eval.c, src/normal.c, src/proto/eval.pro
*** ../vim-7.2.047/src/eval.c Thu Nov 20 10:36:04 2008
--- src/eval.c Thu Nov 20 15:53:47 2008
***************
*** 18146,18159 ****
}
/*
! * Set v:count, v:count1 and v:prevcount.
*/
void
! set_vcount(count, count1)
long count;
long count1;
{
! vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr;
vimvars[VV_COUNT].vv_nr = count;
vimvars[VV_COUNT1].vv_nr = count1;
}
--- 18146,18162 ----
}
/*
! * Set v:count to "count" and v:count1 to "count1".
! * When "set_prevcount" is TRUE first set v:prevcount from v:count.
*/
void
! set_vcount(count, count1, set_prevcount)
long count;
long count1;
+ int set_prevcount;
{
! if (set_prevcount)
! vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr;
vimvars[VV_COUNT].vv_nr = count;
vimvars[VV_COUNT1].vv_nr = count1;
}
*** ../vim-7.2.047/src/normal.c Sat Nov 15 14:10:23 2008
--- src/normal.c Thu Nov 20 16:04:44 2008
***************
*** 580,585 ****
--- 580,588 ----
static int old_mapped_len = 0;
#endif
int idx;
+ #ifdef FEAT_EVAL
+ int set_prevcount = FALSE;
+ #endif
vim_memset(&ca, 0, sizeof(ca)); /* also resets ca.retval */
ca.oap = oap;
***************
*** 615,621 ****
--- 618,629 ----
/* When not finishing an operator and no register name typed, reset the
* count. */
if (!finish_op && !oap->regname)
+ {
ca.opcount = 0;
+ #ifdef FEAT_EVAL
+ set_prevcount = TRUE;
+ #endif
+ }
#ifdef FEAT_AUTOCMD
/* Restore counts from before receiving K_CURSORHOLD. This means after
***************
*** 719,725 ****
* command, so that v:count can be used in an expression mapping
* right after the count. */
if (toplevel && stuff_empty())
! set_vcount(ca.count0, ca.count0 == 0 ? 1 : ca.count0);
#endif
if (ctrl_w)
{
--- 727,741 ----
* command, so that v:count can be used in an expression mapping
* right after the count. */
if (toplevel && stuff_empty())
! {
! long count = ca.count0;
!
! /* multiply with ca.opcount the same way as below */
! if (ca.opcount != 0)
! count = ca.opcount * (count == 0 ? 1 : count);
! set_vcount(count, count == 0 ? 1 : count, set_prevcount);
! set_prevcount = FALSE; /* only set v:prevcount once */
! }
#endif
if (ctrl_w)
{
***************
*** 806,812 ****
* Only set v:count when called from main() and not a stuffed command.
*/
if (toplevel && stuff_empty())
! set_vcount(ca.count0, ca.count1);
#endif
/*
--- 822,828 ----
* Only set v:count when called from main() and not a stuffed command.
*/
if (toplevel && stuff_empty())
! set_vcount(ca.count0, ca.count1, set_prevcount);
#endif
/*
*** ../vim-7.2.047/src/proto/eval.pro Sun Nov 9 13:43:25 2008
--- src/proto/eval.pro Thu Nov 20 15:53:54 2008
***************
*** 61,67 ****
long get_vim_var_nr __ARGS((int idx));
char_u *get_vim_var_str __ARGS((int idx));
list_T *get_vim_var_list __ARGS((int idx));
! void set_vcount __ARGS((long count, long count1));
void set_vim_var_string __ARGS((int idx, char_u *val, int len));
void set_vim_var_list __ARGS((int idx, list_T *val));
void set_reg_var __ARGS((int c));
--- 61,67 ----
long get_vim_var_nr __ARGS((int idx));
char_u *get_vim_var_str __ARGS((int idx));
list_T *get_vim_var_list __ARGS((int idx));
! void set_vcount __ARGS((long count, long count1, int set_prevcount));
void set_vim_var_string __ARGS((int idx, char_u *val, int len));
void set_vim_var_list __ARGS((int idx, list_T *val));
void set_reg_var __ARGS((int c));
*** ../vim-7.2.047/src/version.c Thu Nov 20 14:11:47 2008
--- src/version.c Thu Nov 20 16:08:19 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 48,
/**/
--
Microsoft's definition of a boolean: TRUE, FALSE, MAYBE
"Embrace and extend"...?
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.049 ---
To: vim-dev at vim.org
Subject: Patch 7.2.049 (extra)
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.049 (extra)
Problem: Win32: the clipboard doesn't support UTF-16.
Solution: Change UCS-2 support to UTF-16 support. (Jia Yanwei)
Files: src/gui_w32.c, src/gui_w48.c, src/mbyte.c, src/misc1.c,
src/os_mswin.c, src/os_win32.c, src/proto/os_mswin.pro
*** ../vim-7.2.048/src/gui_w32.c Tue Jun 24 23:46:14 2008
--- src/gui_w32.c Thu Nov 20 16:47:10 2008
***************
*** 992,998 ****
SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH,
0, 500);
! tt_text = enc_to_ucs2(str, NULL);
lpdi->lpszText = tt_text;
/* can't show tooltip if failed */
}
--- 992,998 ----
SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH,
0, 500);
! tt_text = enc_to_utf16(str, NULL);
lpdi->lpszText = tt_text;
/* can't show tooltip if failed */
}
***************
*** 1935,1941 ****
if (buf == NULL)
return NULL;
! convbuf = ucs2_to_enc(buf, lenp);
pImmReleaseContext(hwnd, hIMC);
vim_free(buf);
return convbuf;
--- 1935,1941 ----
if (buf == NULL)
return NULL;
! convbuf = utf16_to_enc(buf, lenp);
pImmReleaseContext(hwnd, hIMC);
vim_free(buf);
return convbuf;
***************
*** 2566,2572 ****
{
/* 'encoding' differs from active codepage: convert menu name
* and use wide function */
! wn = enc_to_ucs2(menu->name, NULL);
if (wn != NULL)
{
MENUITEMINFOW infow;
--- 2566,2572 ----
{
/* 'encoding' differs from active codepage: convert menu name
* and use wide function */
! wn = enc_to_utf16(menu->name, NULL);
if (wn != NULL)
{
MENUITEMINFOW infow;
***************
*** 2728,2734 ****
{
/* 'encoding' differs from active codepage: convert menu item name
* and use wide function */
! wn = enc_to_ucs2(menu->name, NULL);
if (wn != NULL)
{
n = InsertMenuW(parent->submenu_id, (UINT)idx,
--- 2728,2734 ----
{
/* 'encoding' differs from active codepage: convert menu item name
* and use wide function */
! wn = enc_to_utf16(menu->name, NULL);
if (wn != NULL)
{
n = InsertMenuW(parent->submenu_id, (UINT)idx,
***************
*** 3570,3576 ****
if (enc_codepage == 0 && (int)GetACP() != enc_codepage)
{
/* Not a codepage, use our own conversion function. */
! wn = enc_to_ucs2(lpAnsiIn, NULL);
if (wn != NULL)
{
wcscpy(lpWCStr, wn);
--- 3570,3576 ----
if (enc_codepage == 0 && (int)GetACP() != enc_codepage)
{
/* Not a codepage, use our own conversion function. */
! wn = enc_to_utf16(lpAnsiIn, NULL);
if (wn != NULL)
{
wcscpy(lpWCStr, wn);
*** ../vim-7.2.048/src/gui_w48.c Wed Nov 12 13:35:31 2008
--- src/gui_w48.c Thu Nov 20 16:42:32 2008
***************
*** 547,553 ****
else
{
len = 1;
! ws = ucs2_to_enc(wstring, &len);
if (ws == NULL)
len = 0;
else
--- 547,553 ----
else
{
len = 1;
! ws = utf16_to_enc(wstring, &len);
if (ws == NULL)
len = 0;
else
***************
*** 2128,2134 ****
{
/* 'encoding' differs from active codepage: convert text and use wide
* function */
! wstr = enc_to_ucs2(str, &wlen);
if (wstr != NULL)
{
n = GetTextExtentPointW(hdc, wstr, wlen, &size);
--- 2128,2134 ----
{
/* 'encoding' differs from active codepage: convert text and use wide
* function */
! wstr = enc_to_utf16(str, &wlen);
if (wstr != NULL)
{
n = GetTextExtentPointW(hdc, wstr, wlen, &size);
***************
*** 2252,2258 ****
{
/* 'encoding' differs from active codepage: convert menu name
* and use wide function */
! wn = enc_to_ucs2(item_text, NULL);
if (wn != NULL)
{
MENUITEMINFOW infow;
--- 2252,2258 ----
{
/* 'encoding' differs from active codepage: convert menu name
* and use wide function */
! wn = enc_to_utf16(item_text, NULL);
if (wn != NULL)
{
MENUITEMINFOW infow;
***************
*** 2422,2428 ****
if (use_unicode)
{
/* Need to go through Unicode. */
! wstr = enc_to_ucs2(NameBuff, NULL);
if (wstr != NULL)
{
TCITEMW tiw;
--- 2422,2428 ----
if (use_unicode)
{
/* Need to go through Unicode. */
! wstr = enc_to_utf16(NameBuff, NULL);
if (wstr != NULL)
{
TCITEMW tiw;
***************
*** 2521,2528 ****
WCHAR *wbuf;
int n;
! /* Convert the title from 'encoding' to ucs2. */
! wbuf = (WCHAR *)enc_to_ucs2((char_u *)title, NULL);
if (wbuf != NULL)
{
n = SetWindowTextW(hwnd, wbuf);
--- 2521,2528 ----
WCHAR *wbuf;
int n;
! /* Convert the title from 'encoding' to UTF-16. */
! wbuf = (WCHAR *)enc_to_utf16((char_u *)title, NULL);
if (wbuf != NULL)
{
n = SetWindowTextW(hwnd, wbuf);
***************
*** 3222,3228 ****
char_u *initdir,
char_u *filter)
{
! /* We always use the wide function. This means enc_to_ucs2() must work,
* otherwise it fails miserably! */
OPENFILENAMEW fileStruct;
WCHAR fileBuf[MAXPATHL];
--- 3222,3228 ----
char_u *initdir,
char_u *filter)
{
! /* We always use the wide function. This means enc_to_utf16() must work,
* otherwise it fails miserably! */
OPENFILENAMEW fileStruct;
WCHAR fileBuf[MAXPATHL];
***************
*** 3238,3244 ****
fileBuf[0] = NUL;
else
{
! wp = enc_to_ucs2(dflt, NULL);
if (wp == NULL)
fileBuf[0] = NUL;
else
--- 3238,3244 ----
fileBuf[0] = NUL;
else
{
! wp = enc_to_utf16(dflt, NULL);
if (wp == NULL)
fileBuf[0] = NUL;
else
***************
*** 3263,3273 ****
#endif
if (title != NULL)
! titlep = enc_to_ucs2(title, NULL);
fileStruct.lpstrTitle = titlep;
if (ext != NULL)
! extp = enc_to_ucs2(ext, NULL);
fileStruct.lpstrDefExt = extp;
fileStruct.lpstrFile = fileBuf;
--- 3263,3273 ----
#endif
if (title != NULL)
! titlep = enc_to_utf16(title, NULL);
fileStruct.lpstrTitle = titlep;
if (ext != NULL)
! extp = enc_to_utf16(ext, NULL);
fileStruct.lpstrDefExt = extp;
fileStruct.lpstrFile = fileBuf;
***************
*** 3278,3284 ****
if (initdir != NULL && *initdir != NUL)
{
/* Must have backslashes here, no matter what 'shellslash' says */
! initdirp = enc_to_ucs2(initdir, NULL);
if (initdirp != NULL)
{
for (wp = initdirp; *wp != NUL; ++wp)
--- 3278,3284 ----
if (initdir != NULL && *initdir != NUL)
{
/* Must have backslashes here, no matter what 'shellslash' says */
! initdirp = enc_to_utf16(initdir, NULL);
if (initdirp != NULL)
{
for (wp = initdirp; *wp != NUL; ++wp)
***************
*** 3318,3324 ****
vim_free(extp);
/* Convert from UCS2 to 'encoding'. */
! p = ucs2_to_enc(fileBuf, NULL);
if (p != NULL)
/* when out of memory we get garbage for non-ASCII chars */
STRCPY(fileBuf, p);
--- 3318,3324 ----
vim_free(extp);
/* Convert from UCS2 to 'encoding'. */
! p = utf16_to_enc(fileBuf, NULL);
if (p != NULL)
/* when out of memory we get garbage for non-ASCII chars */
STRCPY(fileBuf, p);
***************
*** 3518,3524 ****
{
#ifdef FEAT_MBYTE
if (DragQueryFileW(hDrop, i, wszFile, BUFPATHLEN) > 0)
! fnames[i] = ucs2_to_enc(wszFile, NULL);
else
#endif
{
--- 3518,3524 ----
{
#ifdef FEAT_MBYTE
if (DragQueryFileW(hDrop, i, wszFile, BUFPATHLEN) > 0)
! fnames[i] = utf16_to_enc(wszFile, NULL);
else
#endif
{
*** ../vim-7.2.048/src/mbyte.c Thu Nov 20 11:55:53 2008
--- src/mbyte.c Thu Nov 20 16:47:41 2008
***************
*** 6101,6107 ****
/* 1. codepage/UTF-8 -> ucs-2. */
if (vcp->vc_cpfrom == 0)
! tmp_len = utf8_to_ucs2(ptr, len, NULL, NULL);
else
tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, 0,
ptr, len, 0, 0);
--- 6101,6107 ----
/* 1. codepage/UTF-8 -> ucs-2. */
if (vcp->vc_cpfrom == 0)
! tmp_len = utf8_to_utf16(ptr, len, NULL, NULL);
else
tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, 0,
ptr, len, 0, 0);
***************
*** 6109,6121 ****
if (tmp == NULL)
break;
if (vcp->vc_cpfrom == 0)
! utf8_to_ucs2(ptr, len, tmp, unconvlenp);
else
MultiByteToWideChar(vcp->vc_cpfrom, 0, ptr, len, tmp, tmp_len);
/* 2. ucs-2 -> codepage/UTF-8. */
if (vcp->vc_cpto == 0)
! retlen = ucs2_to_utf8(tmp, tmp_len, NULL);
else
retlen = WideCharToMultiByte(vcp->vc_cpto, 0,
tmp, tmp_len, 0, 0, 0, 0);
--- 6109,6121 ----
if (tmp == NULL)
break;
if (vcp->vc_cpfrom == 0)
! utf8_to_utf16(ptr, len, tmp, unconvlenp);
else
MultiByteToWideChar(vcp->vc_cpfrom, 0, ptr, len, tmp, tmp_len);
/* 2. ucs-2 -> codepage/UTF-8. */
if (vcp->vc_cpto == 0)
! retlen = utf16_to_utf8(tmp, tmp_len, NULL);
else
retlen = WideCharToMultiByte(vcp->vc_cpto, 0,
tmp, tmp_len, 0, 0, 0, 0);
***************
*** 6123,6129 ****
if (retval != NULL)
{
if (vcp->vc_cpto == 0)
! ucs2_to_utf8(tmp, tmp_len, retval);
else
WideCharToMultiByte(vcp->vc_cpto, 0,
tmp, tmp_len, retval, retlen, 0, 0);
--- 6123,6129 ----
if (retval != NULL)
{
if (vcp->vc_cpto == 0)
! utf16_to_utf8(tmp, tmp_len, retval);
else
WideCharToMultiByte(vcp->vc_cpto, 0,
tmp, tmp_len, retval, retlen, 0, 0);
*** ../vim-7.2.048/src/misc1.c Sun Nov 9 13:43:25 2008
--- src/misc1.c Thu Nov 20 16:42:59 2008
***************
*** 8728,8734 ****
/* The active codepage differs from 'encoding'. Attempt using the
* wide function. If it fails because it is not implemented fall back
* to the non-wide version (for Windows 98) */
! wn = enc_to_ucs2(buf, NULL);
if (wn != NULL)
{
hFind = FindFirstFileW(wn, &wfb);
--- 8728,8734 ----
/* The active codepage differs from 'encoding'. Attempt using the
* wide function. If it fails because it is not implemented fall back
* to the non-wide version (for Windows 98) */
! wn = enc_to_utf16(buf, NULL);
if (wn != NULL)
{
hFind = FindFirstFileW(wn, &wfb);
***************
*** 8756,8762 ****
#ifdef WIN3264
# ifdef FEAT_MBYTE
if (wn != NULL)
! p = ucs2_to_enc(wfb.cFileName, NULL); /* p is allocated here */
else
# endif
p = (char_u *)fb.cFileName;
--- 8756,8762 ----
#ifdef WIN3264
# ifdef FEAT_MBYTE
if (wn != NULL)
! p = utf16_to_enc(wfb.cFileName, NULL); /* p is allocated here */
else
# endif
p = (char_u *)fb.cFileName;
***************
*** 8830,8836 ****
if (wn != NULL)
{
vim_free(wn);
! wn = enc_to_ucs2(buf, NULL);
if (wn != NULL)
hFind = FindFirstFileW(wn, &wfb);
}
--- 8830,8836 ----
if (wn != NULL)
{
vim_free(wn);
! wn = enc_to_utf16(buf, NULL);
if (wn != NULL)
hFind = FindFirstFileW(wn, &wfb);
}
*** ../vim-7.2.048/src/os_mswin.c Sat Aug 9 19:37:30 2008
--- src/os_mswin.c Thu Nov 20 17:05:10 2008
***************
*** 309,315 ****
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
/* Convert the title from 'encoding' to the active codepage. */
! WCHAR *wp = enc_to_ucs2(title, NULL);
int n;
if (wp != NULL)
--- 309,315 ----
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
/* Convert the title from 'encoding' to the active codepage. */
! WCHAR *wp = enc_to_utf16(title, NULL);
int n;
if (wp != NULL)
***************
*** 406,415 ****
* - invoke _wfullpath()
* - convert the result from UCS2 to 'encoding'.
*/
! wname = enc_to_ucs2(fname, NULL);
if (wname != NULL && _wfullpath(wbuf, wname, MAX_PATH - 1) != NULL)
{
! cname = ucs2_to_enc((short_u *)wbuf, NULL);
if (cname != NULL)
{
vim_strncpy(buf, cname, len - 1);
--- 406,415 ----
* - invoke _wfullpath()
* - convert the result from UCS2 to 'encoding'.
*/
! wname = enc_to_utf16(fname, NULL);
if (wname != NULL && _wfullpath(wbuf, wname, MAX_PATH - 1) != NULL)
{
! cname = utf16_to_enc((short_u *)wbuf, NULL);
if (cname != NULL)
{
vim_strncpy(buf, cname, len - 1);
***************
*** 507,513 ****
# endif
)
{
! WCHAR *wp = enc_to_ucs2(buf, NULL);
int n;
if (wp != NULL)
--- 507,513 ----
# endif
)
{
! WCHAR *wp = enc_to_utf16(buf, NULL);
int n;
if (wp != NULL)
***************
*** 668,674 ****
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! WCHAR *p = enc_to_ucs2(path, NULL);
int n;
if (p != NULL)
--- 668,674 ----
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! WCHAR *p = enc_to_utf16(path, NULL);
int n;
if (p != NULL)
***************
*** 891,909 ****
#if defined(FEAT_MBYTE) || defined(PROTO)
/*
! * Convert an UTF-8 string to UCS-2.
* "instr[inlen]" is the input. "inlen" is in bytes.
! * When "outstr" is NULL only return the number of UCS-2 words produced.
* Otherwise "outstr" must be a buffer of sufficient size.
! * Returns the number of UCS-2 words produced.
*/
int
! utf8_to_ucs2(char_u *instr, int inlen, short_u *outstr, int *unconvlenp)
{
int outlen = 0;
char_u *p = instr;
int todo = inlen;
int l;
while (todo > 0)
{
--- 891,910 ----
#if defined(FEAT_MBYTE) || defined(PROTO)
/*
! * Convert an UTF-8 string to UTF-16.
* "instr[inlen]" is the input. "inlen" is in bytes.
! * When "outstr" is NULL only return the number of UTF-16 words produced.
* Otherwise "outstr" must be a buffer of sufficient size.
! * Returns the number of UTF-16 words produced.
*/
int
! utf8_to_utf16(char_u *instr, int inlen, short_u *outstr, int *unconvlenp)
{
int outlen = 0;
char_u *p = instr;
int todo = inlen;
int l;
+ int ch;
while (todo > 0)
{
***************
*** 917,924 ****
break;
}
! if (outstr != NULL)
! *outstr++ = utf_ptr2char(p);
++outlen;
p += l;
todo -= l;
--- 918,936 ----
break;
}
! ch = utf_ptr2char(p);
! if (ch >= 0x10000)
! {
! /* non-BMP character, encoding with surrogate pairs */
! ++outlen;
! if (outstr != NULL)
! {
! *outstr++ = (0xD800 - (0x10000 >> 10)) + (ch >> 10);
! *outstr++ = 0xDC00 | (ch & 0x3FF);
! }
! }
! else if (outstr != NULL)
! *outstr++ = ch;
++outlen;
p += l;
todo -= l;
***************
*** 928,956 ****
}
/*
! * Convert an UCS-2 string to UTF-8.
! * The input is "instr[inlen]" with "inlen" in number of ucs-2 words.
* When "outstr" is NULL only return the required number of bytes.
* Otherwise "outstr" must be a buffer of sufficient size.
* Return the number of bytes produced.
*/
int
! ucs2_to_utf8(short_u *instr, int inlen, char_u *outstr)
{
int outlen = 0;
int todo = inlen;
short_u *p = instr;
int l;
while (todo > 0)
{
if (outstr != NULL)
{
! l = utf_char2bytes(*p, outstr);
outstr += l;
}
else
! l = utf_char2len(*p);
++p;
outlen += l;
--todo;
--- 940,981 ----
}
/*
! * Convert an UTF-16 string to UTF-8.
! * The input is "instr[inlen]" with "inlen" in number of UTF-16 words.
* When "outstr" is NULL only return the required number of bytes.
* Otherwise "outstr" must be a buffer of sufficient size.
* Return the number of bytes produced.
*/
int
! utf16_to_utf8(short_u *instr, int inlen, char_u *outstr)
{
int outlen = 0;
int todo = inlen;
short_u *p = instr;
int l;
+ int ch, ch2;
while (todo > 0)
{
+ ch = *p;
+ if (ch >= 0xD800 && ch <= 0xDBFF && todo > 1)
+ {
+ /* surrogate pairs handling */
+ ch2 = p[1];
+ if (ch2 >= 0xDC00 && ch2 <= 0xDFFF)
+ {
+ ch = ((ch - 0xD800) << 10) + (ch2 & 0x3FF) + 0x10000;
+ ++p;
+ --todo;
+ }
+ }
if (outstr != NULL)
{
! l = utf_char2bytes(ch, outstr);
outstr += l;
}
else
! l = utf_char2len(ch);
++p;
outlen += l;
--todo;
***************
*** 1079,1092 ****
*/
/*
! * Convert "str" from 'encoding' to UCS-2.
* Input in "str" with length "*lenp". When "lenp" is NULL, use strlen().
* Output is returned as an allocated string. "*lenp" is set to the length of
* the result. A trailing NUL is always added.
* Returns NULL when out of memory.
*/
short_u *
! enc_to_ucs2(char_u *str, int *lenp)
{
vimconv_T conv;
WCHAR *ret;
--- 1104,1117 ----
*/
/*
! * Convert "str" from 'encoding' to UTF-16.
* Input in "str" with length "*lenp". When "lenp" is NULL, use strlen().
* Output is returned as an allocated string. "*lenp" is set to the length of
* the result. A trailing NUL is always added.
* Returns NULL when out of memory.
*/
short_u *
! enc_to_utf16(char_u *str, int *lenp)
{
vimconv_T conv;
WCHAR *ret;
***************
*** 1102,1108 ****
if (enc_codepage > 0)
{
! /* We can do any CP### -> UCS-2 in one pass, and we can do it
* without iconv() (convert_* may need iconv). */
MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
}
--- 1127,1133 ----
if (enc_codepage > 0)
{
! /* We can do any CP### -> UTF-16 in one pass, and we can do it
* without iconv() (convert_* may need iconv). */
MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
}
***************
*** 1123,1133 ****
}
convert_setup(&conv, NULL, NULL);
! length = utf8_to_ucs2(str, *lenp, NULL, NULL);
ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
if (ret != NULL)
{
! utf8_to_ucs2(str, *lenp, (short_u *)ret, NULL);
ret[length] = 0;
}
--- 1148,1158 ----
}
convert_setup(&conv, NULL, NULL);
! length = utf8_to_utf16(str, *lenp, NULL, NULL);
ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
if (ret != NULL)
{
! utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
ret[length] = 0;
}
***************
*** 1139,1145 ****
}
/*
! * Convert an UCS-2 string to 'encoding'.
* Input in "str" with length (counted in wide characters) "*lenp". When
* "lenp" is NULL, use wcslen().
* Output is returned as an allocated string. If "*lenp" is not NULL it is
--- 1164,1170 ----
}
/*
! * Convert an UTF-16 string to 'encoding'.
* Input in "str" with length (counted in wide characters) "*lenp". When
* "lenp" is NULL, use wcslen().
* Output is returned as an allocated string. If "*lenp" is not NULL it is
***************
*** 1147,1153 ****
* Returns NULL when out of memory.
*/
char_u *
! ucs2_to_enc(short_u *str, int *lenp)
{
vimconv_T conv;
char_u *utf8_str = NULL, *enc_str = NULL;
--- 1172,1178 ----
* Returns NULL when out of memory.
*/
char_u *
! utf16_to_enc(short_u *str, int *lenp)
{
vimconv_T conv;
char_u *utf8_str = NULL, *enc_str = NULL;
***************
*** 1161,1167 ****
if (enc_codepage > 0)
{
! /* We can do any UCS-2 -> CP### in one pass. */
int length;
WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
--- 1186,1192 ----
if (enc_codepage > 0)
{
! /* We can do any UTF-16 -> CP### in one pass. */
int length;
WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
***************
*** 1171,1180 ****
}
/* Avoid allocating zero bytes, it generates an error message. */
! utf8_str = alloc(ucs2_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
if (utf8_str != NULL)
{
! *lenp = ucs2_to_utf8(str, *lenp, utf8_str);
/* We might be called before we have p_enc set up. */
conv.vc_type = CONV_NONE;
--- 1196,1205 ----
}
/* Avoid allocating zero bytes, it generates an error message. */
! utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
if (utf8_str != NULL)
{
! *lenp = utf16_to_utf8(str, *lenp, utf8_str);
/* We might be called before we have p_enc set up. */
conv.vc_type = CONV_NONE;
***************
*** 1308,1314 ****
if (hMemWstr[str_size] == NUL)
break;
}
! to_free = str = ucs2_to_enc((short_u *)hMemWstr, &str_size);
GlobalUnlock(hMemW);
}
}
--- 1333,1339 ----
if (hMemWstr[str_size] == NUL)
break;
}
! to_free = str = utf16_to_enc((short_u *)hMemWstr, &str_size);
GlobalUnlock(hMemW);
}
}
***************
*** 1340,1346 ****
# if defined(FEAT_MBYTE) && defined(WIN3264)
/* The text is in the active codepage. Convert to 'encoding',
! * going through UCS-2. */
acp_to_enc(str, str_size, &to_free, &maxlen);
if (to_free != NULL)
{
--- 1365,1371 ----
# if defined(FEAT_MBYTE) && defined(WIN3264)
/* The text is in the active codepage. Convert to 'encoding',
! * going through UTF-16. */
acp_to_enc(str, str_size, &to_free, &maxlen);
if (to_free != NULL)
{
***************
*** 1404,1410 ****
if (widestr != NULL)
{
++*outlen; /* Include the 0 after the string */
! *out = ucs2_to_enc((short_u *)widestr, outlen);
vim_free(widestr);
}
}
--- 1429,1435 ----
if (widestr != NULL)
{
++*outlen; /* Include the 0 after the string */
! *out = utf16_to_enc((short_u *)widestr, outlen);
vim_free(widestr);
}
}
***************
*** 1466,1474 ****
WCHAR *out;
int len = metadata.txtlen;
! /* Convert the text to UCS-2. This is put on the clipboard as
* CF_UNICODETEXT. */
! out = (WCHAR *)enc_to_ucs2(str, &len);
if (out != NULL)
{
WCHAR *lpszMemW;
--- 1491,1499 ----
WCHAR *out;
int len = metadata.txtlen;
! /* Convert the text to UTF-16. This is put on the clipboard as
* CF_UNICODETEXT. */
! out = (WCHAR *)enc_to_utf16(str, &len);
if (out != NULL)
{
WCHAR *lpszMemW;
***************
*** 1488,1494 ****
WideCharToMultiByte(GetACP(), 0, out, len,
str, metadata.txtlen, 0, 0);
! /* Allocate memory for the UCS-2 text, add one NUL word to
* terminate the string. */
hMemW = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE,
(len + 1) * sizeof(WCHAR));
--- 1513,1519 ----
WideCharToMultiByte(GetACP(), 0, out, len,
str, metadata.txtlen, 0, 0);
! /* Allocate memory for the UTF-16 text, add one NUL word to
* terminate the string. */
hMemW = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE,
(len + 1) * sizeof(WCHAR));
*** ../vim-7.2.048/src/os_win32.c Thu Jul 24 20:50:30 2008
--- src/os_win32.c Thu Nov 20 16:44:33 2008
***************
*** 1587,1593 ****
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! WCHAR *p = enc_to_ucs2(name, NULL);
WCHAR fnamew[_MAX_PATH];
WCHAR *dumw;
long n;
--- 1587,1593 ----
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! WCHAR *p = enc_to_utf16(name, NULL);
WCHAR fnamew[_MAX_PATH];
WCHAR *dumw;
long n;
***************
*** 2440,2446 ****
if (GetCurrentDirectoryW(_MAX_PATH, wbuf) != 0)
{
! char_u *p = ucs2_to_enc(wbuf, NULL);
if (p != NULL)
{
--- 2440,2446 ----
if (GetCurrentDirectoryW(_MAX_PATH, wbuf) != 0)
{
! char_u *p = utf16_to_enc(wbuf, NULL);
if (p != NULL)
{
***************
*** 2466,2472 ****
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! WCHAR *p = enc_to_ucs2(name, NULL);
long n;
if (p != NULL)
--- 2466,2472 ----
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! WCHAR *p = enc_to_utf16(name, NULL);
long n;
if (p != NULL)
***************
*** 2495,2501 ****
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! WCHAR *p = enc_to_ucs2(name, NULL);
long n;
if (p != NULL)
--- 2495,2501 ----
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! WCHAR *p = enc_to_utf16(name, NULL);
long n;
if (p != NULL)
***************
*** 2522,2528 ****
WCHAR *p = NULL;
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
! p = enc_to_ucs2(name, NULL);
#endif
#ifdef FEAT_MBYTE
--- 2522,2528 ----
WCHAR *p = NULL;
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
! p = enc_to_utf16(name, NULL);
#endif
#ifdef FEAT_MBYTE
***************
*** 2590,2596 ****
WCHAR *wn = NULL;
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
! wn = enc_to_ucs2(fname, NULL);
if (wn != NULL)
{
hFile = CreateFileW(wn, /* file name */
--- 2590,2596 ----
WCHAR *wn = NULL;
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
! wn = enc_to_utf16(fname, NULL);
if (wn != NULL)
{
hFile = CreateFileW(wn, /* file name */
***************
*** 4239,4245 ****
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! wn = enc_to_ucs2(name, NULL);
if (wn != NULL)
{
SetFileAttributesW(wn, FILE_ATTRIBUTE_NORMAL);
--- 4239,4245 ----
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! wn = enc_to_utf16(name, NULL);
if (wn != NULL)
{
SetFileAttributesW(wn, FILE_ATTRIBUTE_NORMAL);
***************
*** 4382,4389 ****
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! wold = enc_to_ucs2((char_u *)pszOldFile, NULL);
! wnew = enc_to_ucs2((char_u *)pszNewFile, NULL);
if (wold != NULL && wnew != NULL)
retval = mch_wrename(wold, wnew);
vim_free(wold);
--- 4382,4389 ----
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! wold = enc_to_utf16((char_u *)pszOldFile, NULL);
! wnew = enc_to_utf16((char_u *)pszNewFile, NULL);
if (wold != NULL && wnew != NULL)
retval = mch_wrename(wold, wnew);
vim_free(wold);
***************
*** 4492,4498 ****
WCHAR *wn = NULL;
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
! wn = enc_to_ucs2(n, NULL);
#endif
if (mch_isdir(n))
--- 4492,4498 ----
WCHAR *wn = NULL;
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
! wn = enc_to_utf16(n, NULL);
#endif
if (mch_isdir(n))
***************
*** 4618,4624 ****
#if defined(FEAT_MBYTE) || defined(PROTO)
/*
! * Version of open() that may use ucs2 file name.
*/
int
mch_open(char *name, int flags, int mode)
--- 4618,4624 ----
#if defined(FEAT_MBYTE) || defined(PROTO)
/*
! * Version of open() that may use UTF-16 file name.
*/
int
mch_open(char *name, int flags, int mode)
***************
*** 4630,4636 ****
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! wn = enc_to_ucs2(name, NULL);
if (wn != NULL)
{
f = _wopen(wn, flags, mode);
--- 4630,4636 ----
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
! wn = enc_to_utf16(name, NULL);
if (wn != NULL)
{
f = _wopen(wn, flags, mode);
***************
*** 4648,4654 ****
}
/*
! * Version of fopen() that may use ucs2 file name.
*/
FILE *
mch_fopen(char *name, char *mode)
--- 4648,4654 ----
}
/*
! * Version of fopen() that may use UTF-16 file name.
*/
FILE *
mch_fopen(char *name, char *mode)
***************
*** 4675,4682 ****
else if (newMode == 'b')
_set_fmode(_O_BINARY);
# endif
! wn = enc_to_ucs2(name, NULL);
! wm = enc_to_ucs2(mode, NULL);
if (wn != NULL && wm != NULL)
f = _wfopen(wn, wm);
vim_free(wn);
--- 4675,4682 ----
else if (newMode == 'b')
_set_fmode(_O_BINARY);
# endif
! wn = enc_to_utf16(name, NULL);
! wm = enc_to_utf16(mode, NULL);
if (wn != NULL && wm != NULL)
f = _wfopen(wn, wm);
vim_free(wn);
***************
*** 4776,4783 ****
int len;
/* Convert the file names to wide characters. */
! fromw = enc_to_ucs2(from, NULL);
! tow = enc_to_ucs2(to, NULL);
if (fromw != NULL && tow != NULL)
{
/* Open the file for reading. */
--- 4776,4783 ----
int len;
/* Convert the file names to wide characters. */
! fromw = enc_to_utf16(from, NULL);
! tow = enc_to_utf16(to, NULL);
if (fromw != NULL && tow != NULL)
{
/* Open the file for reading. */
***************
*** 5122,5128 ****
for (i = 0; i < used_file_count; ++i)
{
idx = used_file_indexes[i];
! str = ucs2_to_enc(ArglistW[idx], NULL);
if (str != NULL)
{
#ifdef FEAT_DIFF
--- 5122,5128 ----
for (i = 0; i < used_file_count; ++i)
{
idx = used_file_indexes[i];
! str = utf16_to_enc(ArglistW[idx], NULL);
if (str != NULL)
{
#ifdef FEAT_DIFF
*** ../vim-7.2.048/src/proto/os_mswin.pro Sat May 5 19:07:50 2007
--- src/proto/os_mswin.pro Thu Nov 20 16:41:00 2008
***************
*** 22,35 ****
int can_end_termcap_mode __ARGS((int give_msg));
int mch_screenmode __ARGS((char_u *arg));
int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result));
! int utf8_to_ucs2 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp));
! int ucs2_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr));
void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen));
void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef));
int clip_mch_own_selection __ARGS((VimClipboard *cbd));
void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
! short_u *enc_to_ucs2 __ARGS((char_u *str, int *lenp));
! char_u *ucs2_to_enc __ARGS((short_u *str, int *lenp));
void clip_mch_request_selection __ARGS((VimClipboard *cbd));
void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen));
void clip_mch_set_selection __ARGS((VimClipboard *cbd));
--- 22,35 ----
int can_end_termcap_mode __ARGS((int give_msg));
int mch_screenmode __ARGS((char_u *arg));
int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result));
! int utf8_to_utf16 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp));
! int utf16_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr));
void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen));
void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef));
int clip_mch_own_selection __ARGS((VimClipboard *cbd));
void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
! short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp));
! char_u *utf16_to_enc __ARGS((short_u *str, int *lenp));
void clip_mch_request_selection __ARGS((VimClipboard *cbd));
void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen));
void clip_mch_set_selection __ARGS((VimClipboard *cbd));
*** ../vim-7.2.048/src/version.c Thu Nov 20 16:11:03 2008
--- src/version.c Thu Nov 20 17:08:07 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 49,
/**/
--
FIRST HEAD: All right! All right! We'll kill him first and then have tea and
biscuits.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.050 ---
To: vim-dev at vim.org
Subject: Patch 7.2.050
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.050
Problem: Warnings for not checking return value of fwrite(). (Chip Campbell)
Solution: Use the return value.
Files: src/spell.c
*** ../vim-7.2.049/src/spell.c Mon Aug 25 04:12:38 2008
--- src/spell.c Thu Nov 20 17:28:01 2008
***************
*** 7926,7931 ****
--- 7926,7933 ----
char_u *p;
int rr;
int retval = OK;
+ int fwv = 1; /* collect return value of fwrite() to avoid
+ warnings from picky compiler */
fd = mch_fopen((char *)fname, "w");
if (fd == NULL)
***************
*** 7936,7946 ****
/* <HEADER>: <fileID> <versionnr> */
/* <fileID> */
! if (fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd) != 1)
! {
! EMSG(_(e_write));
! retval = FAIL;
! }
putc(VIMSPELLVERSION, fd); /* <versionnr> */
/*
--- 7938,7944 ----
/* <HEADER>: <fileID> <versionnr> */
/* <fileID> */
! fwv &= fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd);
putc(VIMSPELLVERSION, fd); /* <versionnr> */
/*
***************
*** 7955,7961 ****
i = (int)STRLEN(spin->si_info);
put_bytes(fd, (long_u)i, 4); /* <sectionlen> */
! fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */
}
/* SN_REGION: <regionname> ...
--- 7953,7959 ----
i = (int)STRLEN(spin->si_info);
put_bytes(fd, (long_u)i, 4); /* <sectionlen> */
! fwv &= fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */
}
/* SN_REGION: <regionname> ...
***************
*** 7966,7972 ****
putc(SNF_REQUIRED, fd); /* <sectionflags> */
l = spin->si_region_count * 2;
put_bytes(fd, (long_u)l, 4); /* <sectionlen> */
! fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd);
/* <regionname> ... */
regionmask = (1 << spin->si_region_count) - 1;
}
--- 7964,7970 ----
putc(SNF_REQUIRED, fd); /* <sectionflags> */
l = spin->si_region_count * 2;
put_bytes(fd, (long_u)l, 4); /* <sectionlen> */
! fwv &= fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd);
/* <regionname> ... */
regionmask = (1 << spin->si_region_count) - 1;
}
***************
*** 8016,8022 ****
}
put_bytes(fd, (long_u)l, 2); /* <folcharslen> */
! fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */
}
/* SN_MIDWORD: <midword> */
--- 8014,8020 ----
}
put_bytes(fd, (long_u)l, 2); /* <folcharslen> */
! fwv &= fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */
}
/* SN_MIDWORD: <midword> */
***************
*** 8027,8033 ****
i = (int)STRLEN(spin->si_midword);
put_bytes(fd, (long_u)i, 4); /* <sectionlen> */
! fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); /* <midword> */
}
/* SN_PREFCOND: <prefcondcnt> <prefcond> ... */
--- 8025,8032 ----
i = (int)STRLEN(spin->si_midword);
put_bytes(fd, (long_u)i, 4); /* <sectionlen> */
! fwv &= fwrite(spin->si_midword, (size_t)i, (size_t)1, fd);
! /* <midword> */
}
/* SN_PREFCOND: <prefcondcnt> <prefcond> ... */
***************
*** 8113,8119 ****
p = rr == 1 ? ftp->ft_from : ftp->ft_to;
l = (int)STRLEN(p);
putc(l, fd);
! fwrite(p, l, (size_t)1, fd);
}
}
--- 8112,8118 ----
p = rr == 1 ? ftp->ft_from : ftp->ft_to;
l = (int)STRLEN(p);
putc(l, fd);
! fwv &= fwrite(p, l, (size_t)1, fd);
}
}
***************
*** 8131,8141 ****
/* <sectionlen> */
put_bytes(fd, (long_u)l, 2); /* <sofofromlen> */
! fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */
l = (int)STRLEN(spin->si_sofoto);
put_bytes(fd, (long_u)l, 2); /* <sofotolen> */
! fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */
}
/* SN_WORDS: <word> ...
--- 8130,8140 ----
/* <sectionlen> */
put_bytes(fd, (long_u)l, 2); /* <sofofromlen> */
! fwv &= fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */
l = (int)STRLEN(spin->si_sofoto);
put_bytes(fd, (long_u)l, 2); /* <sofotolen> */
! fwv &= fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */
}
/* SN_WORDS: <word> ...
***************
*** 8160,8166 ****
l = (int)STRLEN(hi->hi_key) + 1;
len += l;
if (round == 2) /* <word> */
! fwrite(hi->hi_key, (size_t)l, (size_t)1, fd);
--todo;
}
if (round == 1)
--- 8159,8165 ----
l = (int)STRLEN(hi->hi_key) + 1;
len += l;
if (round == 2) /* <word> */
! fwv &= fwrite(hi->hi_key, (size_t)l, (size_t)1, fd);
--todo;
}
if (round == 1)
***************
*** 8176,8182 ****
putc(0, fd); /* <sectionflags> */
l = spin->si_map.ga_len;
put_bytes(fd, (long_u)l, 4); /* <sectionlen> */
! fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd);
/* <mapstr> */
}
--- 8175,8181 ----
putc(0, fd); /* <sectionflags> */
l = spin->si_map.ga_len;
put_bytes(fd, (long_u)l, 4); /* <sectionlen> */
! fwv &= fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd);
/* <mapstr> */
}
***************
*** 8232,8241 ****
{
p = ((char_u **)(spin->si_comppat.ga_data))[i];
putc((int)STRLEN(p), fd); /* <comppatlen> */
! fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);/* <comppattext> */
}
/* <compflags> */
! fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags),
(size_t)1, fd);
}
--- 8231,8241 ----
{
p = ((char_u **)(spin->si_comppat.ga_data))[i];
putc((int)STRLEN(p), fd); /* <comppatlen> */
! fwv &= fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);
! /* <comppattext> */
}
/* <compflags> */
! fwv &= fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags),
(size_t)1, fd);
}
***************
*** 8259,8265 ****
l = (int)STRLEN(spin->si_syllable);
put_bytes(fd, (long_u)l, 4); /* <sectionlen> */
! fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); /* <syllable> */
}
/* end of <SECTIONS> */
--- 8259,8266 ----
l = (int)STRLEN(spin->si_syllable);
put_bytes(fd, (long_u)l, 4); /* <sectionlen> */
! fwv &= fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd);
! /* <syllable> */
}
/* end of <SECTIONS> */
***************
*** 8295,8307 ****
(void)put_node(fd, tree, 0, regionmask, round == 3);
}
! /* Write another byte to check for errors. */
if (putc(0, fd) == EOF)
retval = FAIL;
if (fclose(fd) == EOF)
retval = FAIL;
return retval;
}
--- 8296,8313 ----
(void)put_node(fd, tree, 0, regionmask, round == 3);
}
! /* Write another byte to check for errors (file system full). */
if (putc(0, fd) == EOF)
retval = FAIL;
if (fclose(fd) == EOF)
retval = FAIL;
+ if (fwv != 1)
+ retval = FAIL;
+ if (retval == FAIL)
+ EMSG(_(e_write));
+
return retval;
}
***************
*** 9890,9895 ****
--- 9896,9902 ----
char_u *p;
int len;
int totlen;
+ int x = 1; /* collect return value of fwrite() */
if (fd != NULL)
put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */
***************
*** 9906,9912 ****
if (fd != NULL)
{
fputc(len, fd);
! fwrite(p, (size_t)len, (size_t)1, fd);
}
totlen += len;
}
--- 9913,9919 ----
if (fd != NULL)
{
fputc(len, fd);
! x &= fwrite(p, (size_t)len, (size_t)1, fd);
}
totlen += len;
}
*** ../vim-7.2.049/src/version.c Thu Nov 20 17:09:09 2008
--- src/version.c Fri Nov 28 10:06:13 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 50,
/**/
--
You got to work at a mill? Lucky! I got sent back to work in the
acid-mines for my daily crust of stale bread... which not even the
birds would eat.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.051 ---
To: vim-dev at vim.org
Subject: Patch 7.2.051
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.051
Problem: Can't avoid 'wildignore' and 'suffixes' for glob() and globpath().
Solution: Add an extra argument to these functions. (Ingo Karkat)
Files: src/eval.c, src/ex_getln.c, src/proto/ex_getln.pro,
runtime/doc/eval.txt, runtime/doc/options.txt
*** ../vim-7.2.050/src/eval.c Thu Nov 20 16:11:03 2008
--- src/eval.c Thu Nov 27 22:15:40 2008
***************
*** 7564,7571 ****
{"getwinposx", 0, 0, f_getwinposx},
{"getwinposy", 0, 0, f_getwinposy},
{"getwinvar", 2, 2, f_getwinvar},
! {"glob", 1, 1, f_glob},
! {"globpath", 2, 2, f_globpath},
{"has", 1, 1, f_has},
{"has_key", 2, 2, f_has_key},
{"haslocaldir", 0, 0, f_haslocaldir},
--- 7564,7571 ----
{"getwinposx", 0, 0, f_getwinposx},
{"getwinposy", 0, 0, f_getwinposy},
{"getwinvar", 2, 2, f_getwinvar},
! {"glob", 1, 2, f_glob},
! {"globpath", 2, 3, f_globpath},
{"has", 1, 1, f_has},
{"has_key", 2, 2, f_has_key},
{"haslocaldir", 0, 0, f_haslocaldir},
***************
*** 9557,9563 ****
else
{
/* When the optional second argument is non-zero, don't remove matches
! * for 'suffixes' and 'wildignore' */
if (argvars[1].v_type != VAR_UNKNOWN
&& get_tv_number_chk(&argvars[1], &error))
flags |= WILD_KEEP_ALL;
--- 9557,9563 ----
else
{
/* When the optional second argument is non-zero, don't remove matches
! * for 'wildignore' and don't put matches for 'suffixes' at the end. */
if (argvars[1].v_type != VAR_UNKNOWN
&& get_tv_number_chk(&argvars[1], &error))
flags |= WILD_KEEP_ALL;
***************
*** 11323,11335 ****
typval_T *argvars;
typval_T *rettv;
{
expand_T xpc;
! ExpandInit(&xpc);
! xpc.xp_context = EXPAND_FILES;
! rettv->v_type = VAR_STRING;
! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
! NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL);
}
/*
--- 11323,11347 ----
typval_T *argvars;
typval_T *rettv;
{
+ int flags = WILD_SILENT|WILD_USE_NL;
expand_T xpc;
+ int error = FALSE;
! /* When the optional second argument is non-zero, don't remove matches
! * for 'wildignore' and don't put matches for 'suffixes' at the end. */
! if (argvars[1].v_type != VAR_UNKNOWN
! && get_tv_number_chk(&argvars[1], &error))
! flags |= WILD_KEEP_ALL;
! rettv->v_type = VAR_STRING;
! if (!error)
! {
! ExpandInit(&xpc);
! xpc.xp_context = EXPAND_FILES;
! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
! NULL, flags, WILD_ALL);
! }
! else
! rettv->vval.v_string = NULL;
}
/*
***************
*** 11340,11353 ****
typval_T *argvars;
typval_T *rettv;
{
char_u buf1[NUMBUFLEN];
char_u *file = get_tv_string_buf_chk(&argvars[1], buf1);
rettv->v_type = VAR_STRING;
! if (file == NULL)
rettv->vval.v_string = NULL;
else
! rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file);
}
/*
--- 11352,11373 ----
typval_T *argvars;
typval_T *rettv;
{
+ int flags = 0;
char_u buf1[NUMBUFLEN];
char_u *file = get_tv_string_buf_chk(&argvars[1], buf1);
+ int error = FALSE;
+ /* When the optional second argument is non-zero, don't remove matches
+ * for 'wildignore' and don't put matches for 'suffixes' at the end. */
+ if (argvars[2].v_type != VAR_UNKNOWN
+ && get_tv_number_chk(&argvars[2], &error))
+ flags |= WILD_KEEP_ALL;
rettv->v_type = VAR_STRING;
! if (file == NULL || error)
rettv->vval.v_string = NULL;
else
! rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file,
! flags);
}
/*
*** ../vim-7.2.050/src/ex_getln.c Sat Nov 15 14:10:23 2008
--- src/ex_getln.c Thu Nov 20 18:37:20 2008
***************
*** 2524,2530 ****
&& ccline.xpc->xp_context != EXPAND_NOTHING
&& ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL)
{
! int i = ccline.xpc->xp_pattern - p;
/* If xp_pattern points inside the old cmdbuff it needs to be adjusted
* to point into the newly allocated memory. */
--- 2524,2530 ----
&& ccline.xpc->xp_context != EXPAND_NOTHING
&& ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL)
{
! int i = (int)(ccline.xpc->xp_pattern - p);
/* If xp_pattern points inside the old cmdbuff it needs to be adjusted
* to point into the newly allocated memory. */
***************
*** 4897,4903 ****
if (s == NULL)
return FAIL;
sprintf((char *)s, "%s/%s*.vim", dirname, pat);
! all = globpath(p_rtp, s);
vim_free(s);
if (all == NULL)
return FAIL;
--- 4897,4903 ----
if (s == NULL)
return FAIL;
sprintf((char *)s, "%s/%s*.vim", dirname, pat);
! all = globpath(p_rtp, s, 0);
vim_free(s);
if (all == NULL)
return FAIL;
***************
*** 4938,4946 ****
* newlines. Returns NULL for an error or no matches.
*/
char_u *
! globpath(path, file)
char_u *path;
char_u *file;
{
expand_T xpc;
char_u *buf;
--- 4938,4947 ----
* newlines. Returns NULL for an error or no matches.
*/
char_u *
! globpath(path, file, expand_options)
char_u *path;
char_u *file;
+ int expand_options;
{
expand_T xpc;
char_u *buf;
***************
*** 4969,4978 ****
{
add_pathsep(buf);
STRCAT(buf, file);
! if (ExpandFromContext(&xpc, buf, &num_p, &p, WILD_SILENT) != FAIL
! && num_p > 0)
{
! ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT);
for (len = 0, i = 0; i < num_p; ++i)
len += (int)STRLEN(p[i]) + 1;
--- 4970,4979 ----
{
add_pathsep(buf);
STRCAT(buf, file);
! if (ExpandFromContext(&xpc, buf, &num_p, &p,
! WILD_SILENT|expand_options) != FAIL && num_p > 0)
{
! ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT|expand_options);
for (len = 0, i = 0; i < num_p; ++i)
len += (int)STRLEN(p[i]) + 1;
*** ../vim-7.2.050/src/proto/ex_getln.pro Wed May 28 16:49:01 2008
--- src/proto/ex_getln.pro Thu Nov 20 18:27:57 2008
***************
*** 31,37 ****
void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
! char_u *globpath __ARGS((char_u *path, char_u *file));
void init_history __ARGS((void));
int get_histtype __ARGS((char_u *name));
void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
--- 31,37 ----
void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
! char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options));
void init_history __ARGS((void));
int get_histtype __ARGS((char_u *name));
void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
*** ../vim-7.2.050/runtime/doc/eval.txt Sun Nov 9 13:43:25 2008
--- runtime/doc/eval.txt Thu Nov 27 22:17:13 2008
***************
*** 1,4 ****
! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 02
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 27
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 1706,1712 ****
exists( {expr}) Number TRUE if {expr} exists
extend({expr1}, {expr2} [, {expr3}])
List/Dict insert items of {expr2} into {expr1}
! expand( {expr}) String expand special keywords in {expr}
feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
filereadable( {file}) Number TRUE if {file} is a readable file
filewritable( {file}) Number TRUE if {file} is a writable file
--- 1709,1715 ----
exists( {expr}) Number TRUE if {expr} exists
extend({expr1}, {expr2} [, {expr3}])
List/Dict insert items of {expr2} into {expr1}
! expand( {expr} [, {flag}]) String expand special keywords in {expr}
feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
filereadable( {file}) Number TRUE if {file} is a readable file
filewritable( {file}) Number TRUE if {file} is a writable file
***************
*** 1758,1765 ****
getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window
getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
! glob( {expr}) String expand file wildcards in {expr}
! globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path}
has( {feature}) Number TRUE if feature {feature} supported
has_key( {dict}, {key}) Number TRUE if {dict} has entry {key}
haslocaldir() Number TRUE if current window executed |:lcd|
--- 1761,1769 ----
getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window
getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
! glob( {expr} [, {flag}]) String expand file wildcards in {expr}
! globpath( {path}, {expr} [, {flag}])
! String do glob({expr}) for all dirs in {path}
has( {feature}) Number TRUE if feature {feature} supported
has_key( {dict}, {key}) Number TRUE if {dict} has entry {key}
haslocaldir() Number TRUE if current window executed |:lcd|
***************
*** 3286,3299 ****
:let list_is_on = getwinvar(2, '&list')
:echo "myvar = " . getwinvar(1, 'myvar')
<
! *glob()*
! glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the
use of special characters.
The result is a String.
When there are several matches, they are separated by <NL>
characters.
! The 'wildignore' option applies: Names matching one of the
! patterns in 'wildignore' will be skipped.
If the expansion fails, the result is an empty string.
A name for a non-existing file is not included.
--- 3290,3305 ----
:let list_is_on = getwinvar(2, '&list')
:echo "myvar = " . getwinvar(1, 'myvar')
<
! glob({expr} [, {flag}]) *glob()*
! Expand the file wildcards in {expr}. See |wildcards| for the
use of special characters.
The result is a String.
When there are several matches, they are separated by <NL>
characters.
! Unless the optional {flag} argument is given and is non-zero,
! the 'suffixes' and 'wildignore' options apply: Names matching
! one of the patterns in 'wildignore' will be skipped and
! 'suffixes' affect the ordering of matches.
If the expansion fails, the result is an empty string.
A name for a non-existing file is not included.
***************
*** 3307,3326 ****
See |expand()| for expanding special Vim variables. See
|system()| for getting the raw output of an external command.
! globpath({path}, {expr}) *globpath()*
Perform glob() on all directories in {path} and concatenate
the results. Example: >
:echo globpath(&rtp, "syntax/c.vim")
< {path} is a comma-separated list of directory names. Each
directory name is prepended to {expr} and expanded like with
! glob(). A path separator is inserted when needed.
To add a comma inside a directory name escape it with a
backslash. Note that on MS-Windows a directory may have a
trailing backslash, remove it if you put a comma after it.
If the expansion fails for one of the directories, there is no
error message.
! The 'wildignore' option applies: Names matching one of the
! patterns in 'wildignore' will be skipped.
The "**" item can be used to search in a directory tree.
For example, to find all "README.txt" files in the directories
--- 3313,3334 ----
See |expand()| for expanding special Vim variables. See
|system()| for getting the raw output of an external command.
! globpath({path}, {expr} [, {flag}]) *globpath()*
Perform glob() on all directories in {path} and concatenate
the results. Example: >
:echo globpath(&rtp, "syntax/c.vim")
< {path} is a comma-separated list of directory names. Each
directory name is prepended to {expr} and expanded like with
! |glob()|. A path separator is inserted when needed.
To add a comma inside a directory name escape it with a
backslash. Note that on MS-Windows a directory may have a
trailing backslash, remove it if you put a comma after it.
If the expansion fails for one of the directories, there is no
error message.
! Unless the optional {flag} argument is given and is non-zero,
! the 'suffixes' and 'wildignore' options apply: Names matching
! one of the patterns in 'wildignore' will be skipped and
! 'suffixes' affect the ordering of matches.
The "**" item can be used to search in a directory tree.
For example, to find all "README.txt" files in the directories
*** ../vim-7.2.050/runtime/doc/options.txt Sat Aug 9 19:36:49 2008
--- runtime/doc/options.txt Tue Nov 25 23:43:55 2008
***************
*** 1,4 ****
! *options.txt* For Vim version 7.2. Last change: 2008 Aug 06
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *options.txt* For Vim version 7.2. Last change: 2008 Nov 25
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 7472,7478 ****
{not available when compiled without the |+wildignore|
feature}
A list of file patterns. A file that matches with one of these
! patterns is ignored when completing file or directory names.
The pattern is used like with |:autocmd|, see |autocmd-patterns|.
Also see 'suffixes'.
Example: >
--- 7481,7489 ----
{not available when compiled without the |+wildignore|
feature}
A list of file patterns. A file that matches with one of these
! patterns is ignored when completing file or directory names, and
! influences the result of |expand()|, |glob()| and |globpath()| unless
! a flag is passed to disable this.
The pattern is used like with |:autocmd|, see |autocmd-patterns|.
Also see 'suffixes'.
Example: >
*** ../vim-7.2.050/src/version.c Fri Nov 28 10:08:05 2008
--- src/version.c Fri Nov 28 10:55:44 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 51,
/**/
--
Not too long ago, unzipping in public was illegal...
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.052 ---
To: vim-dev at vim.org
Subject: Patch 7.2.052
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.052
Problem: synIDattr() doesn't support "sp" for special color.
Solution: Recognize "sp" and "sp#". (Matt Wozniski)
Files: runtime/doc/eval.txt, src/eval.c
*** ../vim-7.2.051/runtime/doc/eval.txt Fri Nov 28 10:59:57 2008
--- runtime/doc/eval.txt Thu Nov 27 22:17:13 2008
***************
*** 5348,5357 ****
"fg" foreground color (GUI: color name used to set
the color, cterm: color number as a string,
term: empty string)
! "bg" background color (like "fg")
"fg#" like "fg", but for the GUI and the GUI is
running the name in "#RRGGBB" form
"bg#" like "fg#" for "bg"
"bold" "1" if bold
"italic" "1" if italic
"reverse" "1" if reverse
--- 5359,5370 ----
"fg" foreground color (GUI: color name used to set
the color, cterm: color number as a string,
term: empty string)
! "bg" background color (as with "fg")
! "sp" special color (as with "fg") |highlight-guisp|
"fg#" like "fg", but for the GUI and the GUI is
running the name in "#RRGGBB" form
"bg#" like "fg#" for "bg"
+ "sp#" like "fg#" for "sp"
"bold" "1" if bold
"italic" "1" if italic
"reverse" "1" if reverse
*** ../vim-7.2.051/src/eval.c Fri Nov 28 10:59:57 2008
--- src/eval.c Thu Nov 27 22:15:40 2008
***************
*** 16648,16655 ****
p = highlight_has_attr(id, HL_INVERSE, modec);
break;
! case 's': /* standout */
! p = highlight_has_attr(id, HL_STANDOUT, modec);
break;
case 'u':
--- 16648,16658 ----
p = highlight_has_attr(id, HL_INVERSE, modec);
break;
! case 's':
! if (TOLOWER_ASC(what[1]) == 'p') /* sp[#] */
! p = highlight_color(id, what, modec);
! else /* standout */
! p = highlight_has_attr(id, HL_STANDOUT, modec);
break;
case 'u':
*** ../vim-7.2.051/src/version.c Fri Nov 28 10:59:57 2008
--- src/version.c Fri Nov 28 11:13:45 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 52,
/**/
--
Not too long ago, a keyboard was something to make music with...
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.053 ---
To: vim-dev at vim.org
Subject: Patch 7.2.053
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.053
Problem: Crash when using WorkShop command ":ws foo". (Dominique Pelle)
Solution: Avoid using a NULL pointer.
Files: src/workshop.c
*** ../vim-7.2.052/src/workshop.c Tue Jun 24 23:34:50 2008
--- src/workshop.c Thu Nov 27 22:31:27 2008
***************
*** 1121,1128 ****
? (char *)curbuf->b_sfname : "<None>");
#endif
! strcpy(ffname, (char *) curbuf->b_ffname);
! *filename = ffname; /* copy so nobody can change b_ffname */
*curLine = curwin->w_cursor.lnum;
*curCol = curwin->w_cursor.col;
--- 1121,1132 ----
? (char *)curbuf->b_sfname : "<None>");
#endif
! if (curbuf->b_ffname == NULL)
! ffname[0] = NUL;
! else
! /* copy so nobody can change b_ffname */
! strcpy(ffname, (char *) curbuf->b_ffname);
! *filename = ffname;
*curLine = curwin->w_cursor.lnum;
*curCol = curwin->w_cursor.col;
*** ../vim-7.2.052/src/version.c Fri Nov 28 11:15:10 2008
--- src/version.c Fri Nov 28 11:44:23 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 53,
/**/
--
What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics'
meaning 'bloodsucking creatures'.
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.054 ---
To: vim-dev at vim.org
Subject: Patch 7.2.054
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.054
Problem: Compilation warnings for format in getchar.c.
Solution: Use fputs() instead of fprintf(). (Dominique Pelle)
Files: src/getchar.c
*** ../vim-7.2.053/src/getchar.c Tue Jul 22 18:58:23 2008
--- src/getchar.c Thu Nov 27 22:38:24 2008
***************
*** 4702,4708 ****
return FAIL;
if (mp->m_noremap != REMAP_YES && fprintf(fd, "nore") < 0)
return FAIL;
! if (fprintf(fd, cmd) < 0)
return FAIL;
if (buf != NULL && fputs(" <buffer>", fd) < 0)
return FAIL;
--- 4702,4708 ----
return FAIL;
if (mp->m_noremap != REMAP_YES && fprintf(fd, "nore") < 0)
return FAIL;
! if (fputs(cmd, fd) < 0)
return FAIL;
if (buf != NULL && fputs(" <buffer>", fd) < 0)
return FAIL;
***************
*** 4801,4807 ****
}
if (IS_SPECIAL(c) || modifiers) /* special key */
{
! if (fprintf(fd, (char *)get_special_key_name(c, modifiers)) < 0)
return FAIL;
continue;
}
--- 4801,4807 ----
}
if (IS_SPECIAL(c) || modifiers) /* special key */
{
! if (fputs((char *)get_special_key_name(c, modifiers), fd) < 0)
return FAIL;
continue;
}
*** ../vim-7.2.053/src/version.c Fri Nov 28 11:47:14 2008
--- src/version.c Fri Nov 28 12:02:48 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 54,
/**/
--
Not too long ago, compress was something you did to garbage...
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.055 ---
To: vim-dev at vim.org
Subject: Patch 7.2.055
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.055
Problem: Various compiler warnings with strict checking.
Solution: Avoid the warnings by using return values and renaming.
Files: src/diff.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
src/fileio.c, src/fold.c, src/globals.h, src/gui.c,
src/gui_at_sb.c, src/gui_gtk_x11.c, src/gui_xmdlg.c,
src/gui_xmebw.c, src/main.c, src/mbyte.c, src/message.c,
src/netbeans.c, src/option.c, src/os_unix.c, src/spell.c,
src/ui.c, src/window.c
*** ../vim-7.2.054/src/diff.c Fri Jan 18 17:39:32 2008
--- src/diff.c Fri Nov 28 17:23:35 2008
***************
*** 661,666 ****
--- 665,671 ----
char_u *tmp_diff;
FILE *fd;
int ok;
+ int io_error = FALSE;
/* Delete all diffblocks. */
diff_clear(curtab);
***************
*** 697,714 ****
{
ok = FALSE;
fd = mch_fopen((char *)tmp_orig, "w");
! if (fd != NULL)
{
! fwrite("line1\n", (size_t)6, (size_t)1, fd);
fclose(fd);
fd = mch_fopen((char *)tmp_new, "w");
! if (fd != NULL)
{
! fwrite("line2\n", (size_t)6, (size_t)1, fd);
fclose(fd);
diff_file(tmp_orig, tmp_new, tmp_diff);
fd = mch_fopen((char *)tmp_diff, "r");
! if (fd != NULL)
{
char_u linebuf[LBUFLEN];
--- 702,727 ----
{
ok = FALSE;
fd = mch_fopen((char *)tmp_orig, "w");
! if (fd == NULL)
! io_error = TRUE;
! else
{
! if (fwrite("line1\n", (size_t)6, (size_t)1, fd) != 1)
! io_error = TRUE;
fclose(fd);
fd = mch_fopen((char *)tmp_new, "w");
! if (fd == NULL)
! io_error = TRUE;
! else
{
! if (fwrite("line2\n", (size_t)6, (size_t)1, fd) != 1)
! io_error = TRUE;
fclose(fd);
diff_file(tmp_orig, tmp_new, tmp_diff);
fd = mch_fopen((char *)tmp_diff, "r");
! if (fd == NULL)
! io_error = TRUE;
! else
{
char_u linebuf[LBUFLEN];
***************
*** 761,766 ****
--- 774,781 ----
}
if (!ok)
{
+ if (io_error)
+ EMSG(_("E810: Cannot read or write temp files"));
EMSG(_("E97: Cannot create diffs"));
diff_a_works = MAYBE;
#if defined(MSWIN) || defined(MSDOS)
***************
*** 925,934 ****
{
# ifdef TEMPDIRNAMES
if (vim_tempdir != NULL)
! mch_chdir((char *)vim_tempdir);
else
# endif
! mch_chdir("/tmp");
shorten_fnames(TRUE);
}
#endif
--- 940,949 ----
{
# ifdef TEMPDIRNAMES
if (vim_tempdir != NULL)
! ignored = mch_chdir((char *)vim_tempdir);
else
# endif
! ignored = mch_chdir("/tmp");
shorten_fnames(TRUE);
}
#endif
*** ../vim-7.2.054/src/eval.c Fri Nov 28 11:15:10 2008
--- src/eval.c Fri Nov 28 12:23:13 2008
***************
*** 10641,10647 ****
# ifdef FEAT_WINDOWS
win_T *wp;
# endif
! int n = 1;
if (row >= 0 && col >= 0)
{
--- 10641,10647 ----
# ifdef FEAT_WINDOWS
win_T *wp;
# endif
! int winnr = 1;
if (row >= 0 && col >= 0)
{
***************
*** 10651,10659 ****
(void)mouse_comp_pos(win, &row, &col, &lnum);
# ifdef FEAT_WINDOWS
for (wp = firstwin; wp != win; wp = wp->w_next)
! ++n;
# endif
! vimvars[VV_MOUSE_WIN].vv_nr = n;
vimvars[VV_MOUSE_LNUM].vv_nr = lnum;
vimvars[VV_MOUSE_COL].vv_nr = col + 1;
}
--- 10651,10659 ----
(void)mouse_comp_pos(win, &row, &col, &lnum);
# ifdef FEAT_WINDOWS
for (wp = firstwin; wp != win; wp = wp->w_next)
! ++winnr;
# endif
! vimvars[VV_MOUSE_WIN].vv_nr = winnr;
vimvars[VV_MOUSE_LNUM].vv_nr = lnum;
vimvars[VV_MOUSE_COL].vv_nr = col + 1;
}
*** ../vim-7.2.054/src/ex_cmds.c Sat Nov 15 14:10:23 2008
--- src/ex_cmds.c Fri Nov 28 17:24:08 2008
***************
*** 1941,1947 ****
* root.
*/
if (fp_out != NULL)
! (void)fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid);
#endif
}
}
--- 1941,1947 ----
* root.
*/
if (fp_out != NULL)
! ignored = fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid);
#endif
}
}
*** ../vim-7.2.054/src/ex_docmd.c Sat Nov 15 14:10:23 2008
--- src/ex_docmd.c Fri Nov 28 17:26:13 2008
***************
*** 8753,8760 ****
else if (*dirnow != NUL
&& (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
{
! (void)mch_chdir((char *)globaldir);
! shorten_fnames(TRUE);
}
failed |= (makeopens(fd, dirnow) == FAIL);
--- 8753,8760 ----
else if (*dirnow != NUL
&& (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
{
! if (mch_chdir((char *)globaldir) == OK)
! shorten_fnames(TRUE);
}
failed |= (makeopens(fd, dirnow) == FAIL);
*** ../vim-7.2.054/src/fileio.c Wed Nov 12 16:04:43 2008
--- src/fileio.c Fri Nov 28 17:35:54 2008
***************
*** 2214,2220 ****
{
/* Use stderr for stdin, makes shell commands work. */
close(0);
! dup(2);
}
#endif
--- 2214,2220 ----
{
/* Use stderr for stdin, makes shell commands work. */
close(0);
! ignored = dup(2);
}
#endif
***************
*** 3449,3455 ****
{
# ifdef UNIX
# ifdef HAVE_FCHOWN
! fchown(fd, st_old.st_uid, st_old.st_gid);
# endif
if (mch_stat((char *)IObuff, &st) < 0
|| st.st_uid != st_old.st_uid
--- 3449,3455 ----
{
# ifdef UNIX
# ifdef HAVE_FCHOWN
! ignored = fchown(fd, st_old.st_uid, st_old.st_gid);
# endif
if (mch_stat((char *)IObuff, &st) < 0
|| st.st_uid != st_old.st_uid
***************
*** 4365,4371 ****
|| st.st_uid != st_old.st_uid
|| st.st_gid != st_old.st_gid)
{
! fchown(fd, st_old.st_uid, st_old.st_gid);
if (perm >= 0) /* set permission again, may have changed */
(void)mch_setperm(wfname, perm);
}
--- 4365,4371 ----
|| st.st_uid != st_old.st_uid
|| st.st_gid != st_old.st_gid)
{
! ignored = fchown(fd, st_old.st_uid, st_old.st_gid);
if (perm >= 0) /* set permission again, may have changed */
(void)mch_setperm(wfname, perm);
}
***************
*** 6030,6038 ****
{
tbuf[FGETS_SIZE - 2] = NUL;
#ifdef USE_CR
! fgets_cr((char *)tbuf, FGETS_SIZE, fp);
#else
! fgets((char *)tbuf, FGETS_SIZE, fp);
#endif
} while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n');
}
--- 6030,6038 ----
{
tbuf[FGETS_SIZE - 2] = NUL;
#ifdef USE_CR
! ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp);
#else
! ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp);
#endif
} while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n');
}
*** ../vim-7.2.054/src/fold.c Wed Aug 6 18:59:40 2008
--- src/fold.c Fri Nov 28 12:24:16 2008
***************
*** 48,54 ****
static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp));
static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum));
static void checkupdate __ARGS((win_T *wp));
! static void setFoldRepeat __ARGS((linenr_T lnum, long count, int open));
static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep));
static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep));
static void foldOpenNested __ARGS((fold_T *fpr));
--- 48,54 ----
static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp));
static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum));
static void checkupdate __ARGS((win_T *wp));
! static void setFoldRepeat __ARGS((linenr_T lnum, long count, int do_open));
static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep));
static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep));
static void foldOpenNested __ARGS((fold_T *fpr));
***************
*** 1241,1250 ****
* Repeat "count" times.
*/
static void
! setFoldRepeat(lnum, count, open)
linenr_T lnum;
long count;
! int open;
{
int done;
long n;
--- 1241,1250 ----
* Repeat "count" times.
*/
static void
! setFoldRepeat(lnum, count, do_open)
linenr_T lnum;
long count;
! int do_open;
{
int done;
long n;
***************
*** 1252,1258 ****
for (n = 0; n < count; ++n)
{
done = DONE_NOTHING;
! (void)setManualFold(lnum, open, FALSE, &done);
if (!(done & DONE_ACTION))
{
/* Only give an error message when no fold could be opened. */
--- 1252,1258 ----
for (n = 0; n < count; ++n)
{
done = DONE_NOTHING;
! (void)setManualFold(lnum, do_open, FALSE, &done);
if (!(done & DONE_ACTION))
{
/* Only give an error message when no fold could be opened. */
*** ../vim-7.2.054/src/globals.h Thu Sep 18 21:29:07 2008
--- src/globals.h Fri Nov 28 17:35:50 2008
***************
*** 1549,1554 ****
--- 1549,1562 ----
EXTERN time_t starttime;
/*
+ * Some compilers warn for not using a return value, but in some situations we
+ * can't do anything useful with the value. Assign to this variable to avoid
+ * the warning.
+ */
+ EXTERN int ignored;
+ EXTERN char *ignoredp;
+
+ /*
* Optional Farsi support. Include it here, so EXTERN and INIT are defined.
*/
#ifdef FEAT_FKMAP
*** ../vim-7.2.054/src/gui.c Wed Aug 6 14:37:26 2008
--- src/gui.c Fri Nov 28 18:48:31 2008
***************
*** 139,145 ****
/* The read returns when the child closes the pipe (or when
* the child dies for some reason). */
close(pipefd[1]);
! (void)read(pipefd[0], &dummy, (size_t)1);
close(pipefd[0]);
}
--- 139,145 ----
/* The read returns when the child closes the pipe (or when
* the child dies for some reason). */
close(pipefd[1]);
! ignored = (int)read(pipefd[0], &dummy, (size_t)1);
close(pipefd[0]);
}
*** ../vim-7.2.054/src/gui_at_sb.c Sun Jun 13 21:37:13 2004
--- src/gui_at_sb.c Fri Nov 28 12:19:19 2008
***************
*** 1078,1083 ****
--- 1078,1089 ----
Cardinal *num_params; /* unused */
{
ScrollbarWidget sbw = (ScrollbarWidget)w;
+ /* Use a union to avoid a warning for the weird conversion from float to
+ * XtPointer. Comes from Xaw/Scrollbar.c. */
+ union {
+ XtPointer xtp;
+ float xtf;
+ } xtpf;
if (LookAhead(w, event))
return;
***************
*** 1085,1091 ****
/* thumbProc is not pretty, but is necessary for backwards
compatibility on those architectures for which it work{s,ed};
the intent is to pass a (truncated) float by value. */
! XtCallCallbacks(w, XtNthumbProc, *(XtPointer*)&sbw->scrollbar.top);
XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top);
}
--- 1091,1098 ----
/* thumbProc is not pretty, but is necessary for backwards
compatibility on those architectures for which it work{s,ed};
the intent is to pass a (truncated) float by value. */
! xtpf.xtf = sbw->scrollbar.top;
! XtCallCallbacks(w, XtNthumbProc, xtpf.xtp);
XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top);
}
*** ../vim-7.2.054/src/gui_gtk_x11.c Tue Jul 8 12:46:08 2008
--- src/gui_gtk_x11.c Fri Nov 28 21:06:38 2008
***************
*** 4070,4083 ****
if (mask & (XValue | YValue))
{
! int w, h;
! gui_mch_get_screen_dimensions(&w, &h);
! h += p_ghr + get_menu_tool_height();
! w += get_menu_tool_width();
if (mask & XNegative)
! x += w - pixel_width;
if (mask & YNegative)
! y += h - pixel_height;
#ifdef HAVE_GTK2
gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
#else
--- 4070,4083 ----
if (mask & (XValue | YValue))
{
! int ww, hh;
! gui_mch_get_screen_dimensions(&ww, &hh);
! hh += p_ghr + get_menu_tool_height();
! ww += get_menu_tool_width();
if (mask & XNegative)
! x += ww - pixel_width;
if (mask & YNegative)
! y += hh - pixel_height;
#ifdef HAVE_GTK2
gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
#else
*** ../vim-7.2.054/src/gui_xmdlg.c Tue Jun 24 23:39:32 2008
--- src/gui_xmdlg.c Fri Nov 28 21:04:08 2008
***************
*** 369,378 ****
char buf[TEMP_BUF_SIZE];
XmString items[MAX_ENTRIES_IN_LIST];
int i;
! int index;
! for (index = (int)ENCODING; index < (int)NONE; ++index)
! count[index] = 0;
/* First we insert the wild char into every single list. */
if (fix != ENCODING)
--- 369,378 ----
char buf[TEMP_BUF_SIZE];
XmString items[MAX_ENTRIES_IN_LIST];
int i;
! int idx;
! for (idx = (int)ENCODING; idx < (int)NONE; ++idx)
! count[idx] = 0;
/* First we insert the wild char into every single list. */
if (fix != ENCODING)
***************
*** 503,516 ****
/*
* Now loop trough the remaining lists and set them up.
*/
! for (index = (int)NAME; index < (int)NONE; ++index)
{
Widget w;
! if (fix == (enum ListSpecifier)index)
continue;
! switch ((enum ListSpecifier)index)
{
case NAME:
w = data->list[NAME];
--- 503,516 ----
/*
* Now loop trough the remaining lists and set them up.
*/
! for (idx = (int)NAME; idx < (int)NONE; ++idx)
{
Widget w;
! if (fix == (enum ListSpecifier)idx)
continue;
! switch ((enum ListSpecifier)idx)
{
case NAME:
w = data->list[NAME];
***************
*** 525,545 ****
w = (Widget)0; /* for lint */
}
! for (i = 0; i < count[index]; ++i)
{
! items[i] = XmStringCreateLocalized(list[index][i]);
! XtFree(list[index][i]);
}
XmListDeleteAllItems(w);
! XmListAddItems(w, items, count[index], 1);
! if (data->sel[index])
{
XmStringFree(items[0]);
! items[0] = XmStringCreateLocalized(data->sel[index]);
XmListSelectItem(w, items[0], False);
XmListSetBottomItem(w, items[0]);
}
! for (i = 0; i < count[index]; ++i)
XmStringFree(items[i]);
}
}
--- 525,545 ----
w = (Widget)0; /* for lint */
}
! for (i = 0; i < count[idx]; ++i)
{
! items[i] = XmStringCreateLocalized(list[idx][i]);
! XtFree(list[idx][i]);
}
XmListDeleteAllItems(w);
! XmListAddItems(w, items, count[idx], 1);
! if (data->sel[idx])
{
XmStringFree(items[0]);
! items[0] = XmStringCreateLocalized(data->sel[idx]);
XmListSelectItem(w, items[0], False);
XmListSetBottomItem(w, items[0]);
}
! for (i = 0; i < count[idx]; ++i)
XmStringFree(items[i]);
}
}
***************
*** 695,708 ****
int n;
XmString str;
Arg args[4];
! char *msg = _("no specific match");
n = 0;
! str = XmStringCreateLocalized(msg);
XtSetArg(args[n], XmNlabelString, str); ++n;
XtSetValues(data->sample, args, n);
apply_fontlist(data->sample);
! XmTextSetString(data->name, msg);
XmStringFree(str);
return False;
--- 695,708 ----
int n;
XmString str;
Arg args[4];
! char *nomatch_msg = _("no specific match");
n = 0;
! str = XmStringCreateLocalized(nomatch_msg);
XtSetArg(args[n], XmNlabelString, str); ++n;
XtSetValues(data->sample, args, n);
apply_fontlist(data->sample);
! XmTextSetString(data->name, nomatch_msg);
XmStringFree(str);
return False;
***************
*** 886,906 ****
{
int i;
int max;
! int index = 0;
int size;
! char str[128];
for (i = 0, max = 0; i < data->num; i++)
{
! get_part(fn(data, i), 7, str);
! size = atoi(str);
if ((size > max) && (size < MAX_DISPLAY_SIZE))
{
! index = i;
max = size;
}
}
! strcpy(big_font, fn(data, index));
}
data->old = XLoadQueryFont(XtDisplay(parent), big_font);
data->old_list = gui_motif_create_fontlist(data->old);
--- 886,906 ----
{
int i;
int max;
! int idx = 0;
int size;
! char buf[128];
for (i = 0, max = 0; i < data->num; i++)
{
! get_part(fn(data, i), 7, buf);
! size = atoi(buf);
if ((size > max) && (size < MAX_DISPLAY_SIZE))
{
! idx = i;
max = size;
}
}
! strcpy(big_font, fn(data, idx));
}
data->old = XLoadQueryFont(XtDisplay(parent), big_font);
data->old_list = gui_motif_create_fontlist(data->old);
***************
*** 1217,1244 ****
if (i != 0)
{
! char name[TEMP_BUF_SIZE];
! char style[TEMP_BUF_SIZE];
! char size[TEMP_BUF_SIZE];
! char encoding[TEMP_BUF_SIZE];
char *found;
found = names[0];
! name_part(found, name);
! style_part(found, style);
! size_part(found, size, data->in_pixels);
! encoding_part(found, encoding);
!
! if (strlen(name) > 0
! && strlen(style) > 0
! && strlen(size) > 0
! && strlen(encoding) > 0)
{
! data->sel[NAME] = XtNewString(name);
! data->sel[STYLE] = XtNewString(style);
! data->sel[SIZE] = XtNewString(size);
! data->sel[ENCODING] = XtNewString(encoding);
data->font_name = XtNewString(names[0]);
display_sample(data);
XmTextSetString(data->name, data->font_name);
--- 1217,1244 ----
if (i != 0)
{
! char namebuf[TEMP_BUF_SIZE];
! char stylebuf[TEMP_BUF_SIZE];
! char sizebuf[TEMP_BUF_SIZE];
! char encodingbuf[TEMP_BUF_SIZE];
char *found;
found = names[0];
! name_part(found, namebuf);
! style_part(found, stylebuf);
! size_part(found, sizebuf, data->in_pixels);
! encoding_part(found, encodingbuf);
!
! if (strlen(namebuf) > 0
! && strlen(stylebuf) > 0
! && strlen(sizebuf) > 0
! && strlen(encodingbuf) > 0)
{
! data->sel[NAME] = XtNewString(namebuf);
! data->sel[STYLE] = XtNewString(stylebuf);
! data->sel[SIZE] = XtNewString(sizebuf);
! data->sel[ENCODING] = XtNewString(encodingbuf);
data->font_name = XtNewString(names[0]);
display_sample(data);
XmTextSetString(data->name, data->font_name);
*** ../vim-7.2.054/src/gui_xmebw.c Thu Nov 8 20:48:14 2007
--- src/gui_xmebw.c Fri Nov 28 18:58:53 2008
***************
*** 1256,1262 ****
}
else
{
! int adjust = 0;
#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
/*
--- 1256,1262 ----
}
else
{
! adjust = 0;
#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
/*
***************
*** 1268,1279 ****
{
case XmEXTERNAL_HIGHLIGHT:
adjust = (eb->primitive.highlight_thickness -
! (eb->pushbutton.default_button_shadow_thickness ?
! Xm3D_ENHANCE_PIXEL : 0));
break;
case XmINTERNAL_HIGHLIGHT:
- adjust = 0;
break;
default:
--- 1268,1278 ----
{
case XmEXTERNAL_HIGHLIGHT:
adjust = (eb->primitive.highlight_thickness -
! (eb->pushbutton.default_button_shadow_thickness
! ? Xm3D_ENHANCE_PIXEL : 0));
break;
case XmINTERNAL_HIGHLIGHT:
break;
default:
*** ../vim-7.2.054/src/main.c Thu Nov 20 14:11:47 2008
--- src/main.c Fri Nov 28 18:32:48 2008
***************
*** 2372,2378 ****
* Is there any other system that cannot do this?
*/
close(0);
! dup(2);
#endif
}
--- 2372,2378 ----
* Is there any other system that cannot do this?
*/
close(0);
! ignored = dup(2);
#endif
}
*** ../vim-7.2.054/src/mbyte.c Thu Nov 20 17:09:09 2008
--- src/mbyte.c Fri Nov 28 18:44:05 2008
***************
*** 717,723 ****
* where mblen() returns 0 for invalid character.
* Therefore, following condition includes 0.
*/
! (void)mblen(NULL, 0); /* First reset the state. */
if (mblen(buf, (size_t)1) <= 0)
n = 2;
else
--- 717,723 ----
* where mblen() returns 0 for invalid character.
* Therefore, following condition includes 0.
*/
! ignored = mblen(NULL, 0); /* First reset the state. */
if (mblen(buf, (size_t)1) <= 0)
n = 2;
else
***************
*** 5278,5284 ****
/*ARGSUSED*/
static void
! preedit_start_cbproc(XIC xic, XPointer client_data, XPointer call_data)
{
#ifdef XIM_DEBUG
xim_log("xim_decide_input_style()\n");
--- 5278,5284 ----
/*ARGSUSED*/
static void
! preedit_start_cbproc(XIC thexic, XPointer client_data, XPointer call_data)
{
#ifdef XIM_DEBUG
xim_log("xim_decide_input_style()\n");
***************
*** 5312,5318 ****
/*ARGSUSED*/
static void
! preedit_draw_cbproc(XIC xic, XPointer client_data, XPointer call_data)
{
XIMPreeditDrawCallbackStruct *draw_data;
XIMText *text;
--- 5312,5318 ----
/*ARGSUSED*/
static void
! preedit_draw_cbproc(XIC thexic, XPointer client_data, XPointer call_data)
{
XIMPreeditDrawCallbackStruct *draw_data;
XIMText *text;
***************
*** 5453,5459 ****
/*ARGSUSED*/
static void
! preedit_caret_cbproc(XIC xic, XPointer client_data, XPointer call_data)
{
#ifdef XIM_DEBUG
xim_log("preedit_caret_cbproc()\n");
--- 5453,5459 ----
/*ARGSUSED*/
static void
! preedit_caret_cbproc(XIC thexic, XPointer client_data, XPointer call_data)
{
#ifdef XIM_DEBUG
xim_log("preedit_caret_cbproc()\n");
***************
*** 5462,5468 ****
/*ARGSUSED*/
static void
! preedit_done_cbproc(XIC xic, XPointer client_data, XPointer call_data)
{
#ifdef XIM_DEBUG
xim_log("preedit_done_cbproc()\n");
--- 5462,5468 ----
/*ARGSUSED*/
static void
! preedit_done_cbproc(XIC thexic, XPointer client_data, XPointer call_data)
{
#ifdef XIM_DEBUG
xim_log("preedit_done_cbproc()\n");
*** ../vim-7.2.054/src/message.c Sun Jul 13 19:18:44 2008
--- src/message.c Fri Nov 28 12:26:56 2008
***************
*** 4585,4645 ****
if (remove_trailing_zeroes)
{
int i;
! char *p;
/* Using %g or %G: remove superfluous zeroes. */
if (fmt_spec == 'f')
! p = tmp + str_arg_l - 1;
else
{
! p = (char *)vim_strchr((char_u *)tmp,
fmt_spec == 'e' ? 'e' : 'E');
! if (p != NULL)
{
/* Remove superfluous '+' and leading
* zeroes from the exponent. */
! if (p[1] == '+')
{
/* Change "1.0e+07" to "1.0e07" */
! STRMOVE(p + 1, p + 2);
--str_arg_l;
}
! i = (p[1] == '-') ? 2 : 1;
! while (p[i] == '0')
{
/* Change "1.0e07" to "1.0e7" */
! STRMOVE(p + i, p + i + 1);
--str_arg_l;
}
! --p;
}
}
! if (p != NULL && !precision_specified)
/* Remove trailing zeroes, but keep the one
* just after a dot. */
! while (p > tmp + 2 && *p == '0' && p[-1] != '.')
{
! STRMOVE(p, p + 1);
! --p;
--str_arg_l;
}
}
else
{
! char *p;
/* Be consistent: some printf("%e") use 1.0e+12
* and some 1.0e+012. Remove one zero in the last
* case. */
! p = (char *)vim_strchr((char_u *)tmp,
fmt_spec == 'e' ? 'e' : 'E');
! if (p != NULL && (p[1] == '+' || p[1] == '-')
! && p[2] == '0'
! && vim_isdigit(p[3])
! && vim_isdigit(p[4]))
{
! STRMOVE(p + 2, p + 3);
--str_arg_l;
}
}
--- 4585,4646 ----
if (remove_trailing_zeroes)
{
int i;
! char *tp;
/* Using %g or %G: remove superfluous zeroes. */
if (fmt_spec == 'f')
! tp = tmp + str_arg_l - 1;
else
{
! tp = (char *)vim_strchr((char_u *)tmp,
fmt_spec == 'e' ? 'e' : 'E');
! if (tp != NULL)
{
/* Remove superfluous '+' and leading
* zeroes from the exponent. */
! if (tp[1] == '+')
{
/* Change "1.0e+07" to "1.0e07" */
! STRMOVE(tp + 1, tp + 2);
--str_arg_l;
}
! i = (tp[1] == '-') ? 2 : 1;
! while (tp[i] == '0')
{
/* Change "1.0e07" to "1.0e7" */
! STRMOVE(tp + i, tp + i + 1);
--str_arg_l;
}
! --tp;
}
}
! if (tp != NULL && !precision_specified)
/* Remove trailing zeroes, but keep the one
* just after a dot. */
! while (tp > tmp + 2 && *tp == '0'
! && tp[-1] != '.')
{
! STRMOVE(tp, tp + 1);
! --tp;
--str_arg_l;
}
}
else
{
! char *tp;
/* Be consistent: some printf("%e") use 1.0e+12
* and some 1.0e+012. Remove one zero in the last
* case. */
! tp = (char *)vim_strchr((char_u *)tmp,
fmt_spec == 'e' ? 'e' : 'E');
! if (tp != NULL && (tp[1] == '+' || tp[1] == '-')
! && tp[2] == '0'
! && vim_isdigit(tp[3])
! && vim_isdigit(tp[4]))
{
! STRMOVE(tp + 2, tp + 3);
--str_arg_l;
}
}
*** ../vim-7.2.054/src/netbeans.c Sat Nov 15 14:10:23 2008
--- src/netbeans.c Fri Nov 28 18:51:43 2008
***************
*** 1043,1049 ****
nbdebug(("EVT: %s", buf));
/* nb_send(buf, "netbeans_end"); avoid "write failed" messages */
if (sd >= 0)
! sock_write(sd, buf, (int)STRLEN(buf)); /* ignore errors */
}
}
--- 1043,1049 ----
nbdebug(("EVT: %s", buf));
/* nb_send(buf, "netbeans_end"); avoid "write failed" messages */
if (sd >= 0)
! ignored = sock_write(sd, buf, (int)STRLEN(buf));
}
}
***************
*** 2277,2285 ****
int serNum;
int localTypeNum;
int typeNum;
- # ifdef NBDEBUG
- int len;
- # endif
pos_T *pos;
if (buf == NULL || buf->bufp == NULL)
--- 2277,2282 ----
***************
*** 2303,2315 ****
pos = get_off_or_lnum(buf->bufp, &args);
cp = (char *)args;
! # ifdef NBDEBUG
! len =
! # endif
! strtol(cp, &cp, 10);
args = (char_u *)cp;
# ifdef NBDEBUG
! if (len != -1)
{
nbdebug((" partial line annotation -- Not Yet Implemented!\n"));
}
--- 2300,2309 ----
pos = get_off_or_lnum(buf->bufp, &args);
cp = (char *)args;
! ignored = (int)strtol(cp, &cp, 10);
args = (char_u *)cp;
# ifdef NBDEBUG
! if (ignored != -1)
{
nbdebug((" partial line annotation -- Not Yet Implemented!\n"));
}
*** ../vim-7.2.054/src/option.c Sun Nov 9 13:43:25 2008
--- src/option.c Fri Nov 28 12:27:34 2008
***************
*** 8232,8244 ****
{
if (number == 0 && string != NULL)
{
! int index;
/* Either we are given a string or we are setting option
* to zero. */
! for (index = 0; string[index] == '0'; ++index)
;
! if (string[index] != NUL || index == 0)
{
/* There's another character after zeros or the string
* is empty. In both cases, we are trying to set a
--- 8232,8244 ----
{
if (number == 0 && string != NULL)
{
! int idx;
/* Either we are given a string or we are setting option
* to zero. */
! for (idx = 0; string[idx] == '0'; ++idx)
;
! if (string[idx] != NUL || idx == 0)
{
/* There's another character after zeros or the string
* is empty. In both cases, we are trying to set a
*** ../vim-7.2.054/src/os_unix.c Wed Nov 12 14:09:38 2008
--- src/os_unix.c Fri Nov 28 18:39:55 2008
***************
*** 315,326 ****
{-1, "Unknown!", FALSE}
};
void
mch_write(s, len)
char_u *s;
int len;
{
! write(1, (char *)s, len);
if (p_wd) /* Unix is too fast, slow down a bit more */
RealWaitForChar(read_cmd_fd, p_wd, NULL);
}
--- 315,329 ----
{-1, "Unknown!", FALSE}
};
+ /*
+ * Write s[len] to the screen.
+ */
void
mch_write(s, len)
char_u *s;
int len;
{
! ignored = (int)write(1, (char *)s, len);
if (p_wd) /* Unix is too fast, slow down a bit more */
RealWaitForChar(read_cmd_fd, p_wd, NULL);
}
***************
*** 3927,3935 ****
*/
if (fd >= 0)
{
! dup(fd); /* To replace stdin (file descriptor 0) */
! dup(fd); /* To replace stdout (file descriptor 1) */
! dup(fd); /* To replace stderr (file descriptor 2) */
/* Don't need this now that we've duplicated it */
close(fd);
--- 3930,3938 ----
*/
if (fd >= 0)
{
! ignored = dup(fd); /* To replace stdin (fd 0) */
! ignored = dup(fd); /* To replace stdout (fd 1) */
! ignored = dup(fd); /* To replace stderr (fd 2) */
/* Don't need this now that we've duplicated it */
close(fd);
***************
*** 3997,4009 ****
/* set up stdin/stdout/stderr for the child */
close(0);
! dup(pty_slave_fd);
close(1);
! dup(pty_slave_fd);
if (gui.in_use)
{
close(2);
! dup(pty_slave_fd);
}
close(pty_slave_fd); /* has been dupped, close it now */
--- 4000,4012 ----
/* set up stdin/stdout/stderr for the child */
close(0);
! ignored = dup(pty_slave_fd);
close(1);
! ignored = dup(pty_slave_fd);
if (gui.in_use)
{
close(2);
! ignored = dup(pty_slave_fd);
}
close(pty_slave_fd); /* has been dupped, close it now */
***************
*** 4014,4026 ****
/* set up stdin for the child */
close(fd_toshell[1]);
close(0);
! dup(fd_toshell[0]);
close(fd_toshell[0]);
/* set up stdout for the child */
close(fd_fromshell[0]);
close(1);
! dup(fd_fromshell[1]);
close(fd_fromshell[1]);
# ifdef FEAT_GUI
--- 4017,4029 ----
/* set up stdin for the child */
close(fd_toshell[1]);
close(0);
! ignored = dup(fd_toshell[0]);
close(fd_toshell[0]);
/* set up stdout for the child */
close(fd_fromshell[0]);
close(1);
! ignored = dup(fd_fromshell[1]);
close(fd_fromshell[1]);
# ifdef FEAT_GUI
***************
*** 4028,4034 ****
{
/* set up stderr for the child */
close(2);
! dup(1);
}
# endif
}
--- 4031,4037 ----
{
/* set up stderr for the child */
close(2);
! ignored = dup(1);
}
# endif
}
***************
*** 4159,4165 ****
&& (lnum !=
curbuf->b_ml.ml_line_count
|| curbuf->b_p_eol)))
! write(toshell_fd, "\n", (size_t)1);
++lnum;
if (lnum > curbuf->b_op_end.lnum)
{
--- 4162,4169 ----
&& (lnum !=
curbuf->b_ml.ml_line_count
|| curbuf->b_p_eol)))
! ignored = write(toshell_fd, "\n",
! (size_t)1);
++lnum;
if (lnum > curbuf->b_op_end.lnum)
{
*** ../vim-7.2.054/src/spell.c Fri Nov 28 10:08:05 2008
--- src/spell.c Fri Nov 28 12:28:24 2008
***************
*** 4950,4956 ****
static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd));
static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname));
static void clear_node __ARGS((wordnode_T *node));
! static int put_node __ARGS((FILE *fd, wordnode_T *node, int index, int regionmask, int prefixtree));
static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname));
static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang));
static int sug_maketable __ARGS((spellinfo_T *spin));
--- 4950,4956 ----
static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd));
static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname));
static void clear_node __ARGS((wordnode_T *node));
! static int put_node __ARGS((FILE *fd, wordnode_T *node, int idx, int regionmask, int prefixtree));
static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname));
static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang));
static int sug_maketable __ARGS((spellinfo_T *spin));
*** ../vim-7.2.054/src/ui.c Sun Sep 14 15:57:54 2008
--- src/ui.c Fri Nov 28 19:04:36 2008
***************
*** 1820,1826 ****
#ifdef HAVE_DUP
/* Use stderr for stdin, also works for shell commands. */
close(0);
! dup(2);
#else
read_cmd_fd = 2; /* read from stderr instead of stdin */
#endif
--- 1820,1826 ----
#ifdef HAVE_DUP
/* Use stderr for stdin, also works for shell commands. */
close(0);
! ignored = dup(2);
#else
read_cmd_fd = 2; /* read from stderr instead of stdin */
#endif
*** ../vim-7.2.054/src/window.c Sat Nov 15 14:10:23 2008
--- src/window.c Fri Nov 28 18:46:45 2008
***************
*** 4029,4042 ****
if (mch_dirname(cwd, MAXPATHL) == OK)
globaldir = vim_strsave(cwd);
}
! mch_chdir((char *)curwin->w_localdir);
! shorten_fnames(TRUE);
}
else if (globaldir != NULL)
{
/* Window doesn't have a local directory and we are not in the global
* directory: Change to the global directory. */
! mch_chdir((char *)globaldir);
vim_free(globaldir);
globaldir = NULL;
shorten_fnames(TRUE);
--- 4029,4042 ----
if (mch_dirname(cwd, MAXPATHL) == OK)
globaldir = vim_strsave(cwd);
}
! if (mch_chdir((char *)curwin->w_localdir) == 0)
! shorten_fnames(TRUE);
}
else if (globaldir != NULL)
{
/* Window doesn't have a local directory and we are not in the global
* directory: Change to the global directory. */
! ignored = mch_chdir((char *)globaldir);
vim_free(globaldir);
globaldir = NULL;
shorten_fnames(TRUE);
*** ../vim-7.2.054/src/version.c Fri Nov 28 12:05:07 2008
--- src/version.c Fri Nov 28 21:12:42 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 55,
/**/
--
PRINCE: He's come to rescue me, father.
LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ...
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.056 ---
To: vim-dev at vim.org
Subject: Patch 7.2.056
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.056 (after 7.2.050)
Problem: Tests 58 and 59 fail.
Solution: Don't invoke fwrite() with a zero length. (Dominique Pelle)
Files: src/spell.c
*** ../vim-7.2.055/src/spell.c Fri Nov 28 21:26:50 2008
--- src/spell.c Sat Nov 29 19:58:21 2008
***************
*** 8112,8118 ****
p = rr == 1 ? ftp->ft_from : ftp->ft_to;
l = (int)STRLEN(p);
putc(l, fd);
! fwv &= fwrite(p, l, (size_t)1, fd);
}
}
--- 8218,8225 ----
p = rr == 1 ? ftp->ft_from : ftp->ft_to;
l = (int)STRLEN(p);
putc(l, fd);
! if (l > 0)
! fwv &= fwrite(p, l, (size_t)1, fd);
}
}
*** ../vim-7.2.055/src/version.c Fri Nov 28 21:26:50 2008
--- src/version.c Sat Nov 29 20:10:05 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 56,
/**/
--
GUARD #1: Where'd you get the coconut?
ARTHUR: We found them.
GUARD #1: Found them? In Mercea? The coconut's tropical!
ARTHUR: What do you mean?
GUARD #1: Well, this is a temperate zone.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.057 ---
To: vim-dev at vim.org
Subject: Patch 7.2.057
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.057 (after 7.2.056)
Problem: Combination of int and size_t may not work.
Solution: Use size_t for variable.
Files: src/spell.c
*** ../vim-7.2.056/src/spell.c Sat Nov 29 20:10:59 2008
--- src/spell.c Sat Nov 29 20:15:43 2008
***************
*** 7926,7932 ****
char_u *p;
int rr;
int retval = OK;
! int fwv = 1; /* collect return value of fwrite() to avoid
warnings from picky compiler */
fd = mch_fopen((char *)fname, "w");
--- 8028,8034 ----
char_u *p;
int rr;
int retval = OK;
! size_t fwv = 1; /* collect return value of fwrite() to avoid
warnings from picky compiler */
fd = mch_fopen((char *)fname, "w");
***************
*** 7939,7944 ****
--- 8041,8050 ----
/* <HEADER>: <fileID> <versionnr> */
/* <fileID> */
fwv &= fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd);
+ if (fwv != (size_t)1)
+ /* Catch first write error, don't try writing more. */
+ goto theend;
+
putc(VIMSPELLVERSION, fd); /* <versionnr> */
/*
***************
*** 8300,8310 ****
/* Write another byte to check for errors (file system full). */
if (putc(0, fd) == EOF)
retval = FAIL;
!
if (fclose(fd) == EOF)
retval = FAIL;
! if (fwv != 1)
retval = FAIL;
if (retval == FAIL)
EMSG(_(e_write));
--- 8406,8416 ----
/* Write another byte to check for errors (file system full). */
if (putc(0, fd) == EOF)
retval = FAIL;
! theend:
if (fclose(fd) == EOF)
retval = FAIL;
! if (fwv != (size_t)1)
retval = FAIL;
if (retval == FAIL)
EMSG(_(e_write));
***************
*** 9897,9903 ****
char_u *p;
int len;
int totlen;
! int x = 1; /* collect return value of fwrite() */
if (fd != NULL)
put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */
--- 10003,10009 ----
char_u *p;
int len;
int totlen;
! size_t x = 1; /* collect return value of fwrite() */
if (fd != NULL)
put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */
*** ../vim-7.2.056/src/version.c Sat Nov 29 20:10:59 2008
--- src/version.c Sat Nov 29 20:13:46 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 57,
/**/
--
GUARD #1: What -- a swallow carrying a coconut?
ARTHUR: It could grip it by the husk!
GUARD #1: It's not a question of where he grips it! It's a simple question
of weight ratios! A five ounce bird could not carry a 1 pound
coconut.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.058 ---
To: vim-dev at vim.org
Subject: Patch 7.2.058
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.058
Problem: Can't add a patch name to the ":version" output.
Solution: Add the extra_patches array.
Files: src/version.c
*** ../vim-7.2.057/src/version.c Sat Nov 29 20:18:44 2008
--- src/version.c Sun Nov 30 12:12:31 2008
***************
*** 794,799 ****
--- 796,814 ----
0
};
+ /*
+ * Place to put a short description when adding a feature with a patch.
+ * Keep it short, e.g.,: "relative numbers", "persistent undo".
+ * Also add a comment marker to separate the lines.
+ * See the official Vim patches for the diff format: It must use a context of
+ * one line only. Use "diff -C2".
+ */
+ static char *(extra_patches[]) =
+ { /* Add your patch description below this line */
+ /**/
+ NULL
+ };
+
int
highest_patch()
{
***************
*** 939,944 ****
--- 954,972 ----
}
}
+ /* Print the list of extra patch descriptions if there is at least one. */
+ if (extra_patches[0] != NULL)
+ {
+ MSG_PUTS(_("\nExtra patches: "));
+ s = "";
+ for (i = 0; extra_patches[i] != NULL; ++i)
+ {
+ MSG_PUTS(s);
+ s = ", ";
+ MSG_PUTS(extra_patches[i]);
+ }
+ }
+
#ifdef MODIFIED_BY
MSG_PUTS("\n");
MSG_PUTS(_("Modified by "));
*** ../vim-7.2.057/src/version.c Sat Nov 29 20:18:44 2008
--- src/version.c Sun Nov 30 12:12:31 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 58,
/**/
--
ARTHUR: Well, it doesn't matter. Will you go and tell your master that
Arthur from the Court of Camelot is here.
GUARD #1: Listen, in order to maintain air-speed velocity, a swallow
needs to beat its wings 43 times every second, right?
ARTHUR: Please!
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.059 ---
To: vim-dev at vim.org
Subject: Patch 7.2.059
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.059
Problem: Diff display is not always updated.
Solution: Update the display more often.
Files: src/diff.c
*** ../vim-7.2.058/src/diff.c Fri Nov 28 21:26:50 2008
--- src/diff.c Fri Nov 28 17:23:35 2008
***************
*** 73,78 ****
--- 73,80 ----
{
tp->tp_diffbuf[i] = NULL;
tp->tp_diff_invalid = TRUE;
+ if (tp == curtab)
+ diff_redraw(TRUE);
}
}
}
***************
*** 102,107 ****
--- 104,110 ----
{
curtab->tp_diffbuf[i] = NULL;
curtab->tp_diff_invalid = TRUE;
+ diff_redraw(TRUE);
}
}
}
***************
*** 131,136 ****
--- 134,140 ----
{
curtab->tp_diffbuf[i] = buf;
curtab->tp_diff_invalid = TRUE;
+ diff_redraw(TRUE);
return;
}
*** ../vim-7.2.058/src/version.c Sun Nov 30 12:14:35 2008
--- src/version.c Sun Nov 30 15:13:18 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 59,
/**/
--
GUARD #2: Wait a minute -- supposing two swallows carried it together?
GUARD #1: No, they'd have to have it on a line.
GUARD #2: Well, simple! They'd just use a standard creeper!
GUARD #1: What, held under the dorsal guiding feathers?
GUARD #2: Well, why not?
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE 7.2.060 ---
To: vim-dev at vim.org
Subject: Patch 7.2.060
Fcc: outbox
From: Bram Moolenaar <Bram at moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.060
Problem: When a spell files has many compound rules it may take a very long
time making the list of suggestions. Displaying also can be slow
when there are misspelled words.
Can't parse some Hunspell .aff files.
Solution: Check if a compounding can possibly work before trying a
combination, if the compound rules don't contain wildcards.
Implement using CHECKCOMPOUNDPATTERN.
Ignore COMPOUNDRULES. Ignore a comment after most items.
Accept ONLYINCOMPOUND as an alias for NEEDCOMPOUND.
Accept FORBIDDENWORD as an alias for BAD.
Files: runtime/doc/spell.txt, src/spell.c
*** ../vim-7.2.059/runtime/doc/spell.txt Sat Aug 9 19:36:52 2008
--- runtime/doc/spell.txt Sun Nov 30 16:30:02 2008
***************
*** 1,4 ****
! *spell.txt* For Vim version 7.2. Last change: 2008 Jun 21
VIM REFERENCE MANUAL by Bram Moolenaar
--- 1,4 ----
! *spell.txt* For Vim version 7.2. Last change: 2008 Nov 30
VIM REFERENCE MANUAL by Bram Moolenaar
***************
*** 831,838 ****
# comment line ~
! With some items it's also possible to put a comment after it, but this isn't
! supported in general.
ENCODING *spell-SET*
--- 831,841 ----
# comment line ~
! Items with a fixed number of arguments can be followed by a comment. But only
! if none of the arguments can contain white space. The comment must start with
! a "#" character. Example:
!
! KEEPCASE = # fix case for words with this flag ~
ENCODING *spell-SET*
***************
*** 965,970 ****
--- 968,976 ----
Note: When using utf-8 only characters up to 65000 may be used for flags.
+ Note: even when using "num" or "long" the number of flags available to
+ compounding and prefixes is limited to about 250.
+
AFFIXES
*spell-PFX* *spell-SFX*
***************
*** 1178,1183 ****
--- 1185,1193 ----
The flag also applies to the word with affixes, thus this can be used to mark
a whole bunch of related words as bad.
+ *spell-FORBIDDENWORD*
+ FORBIDDENWORD can be used just like BAD. For compatibility with Hunspell.
+
*spell-NEEDAFFIX*
The NEEDAFFIX flag is used to require that a word is used with an affix. The
word itself is not a good word (unless there is an empty affix). Example:
***************
*** 1268,1273 ****
--- 1278,1287 ----
NEEDCOMPOUND & ~
+ *spell-ONLYINCOMPOUND*
+ The ONLYINCOMPOUND does exactly the same as NEEDCOMPOUND. Supported for
+ compatiblity with Hunspell.
+
*spell-COMPOUNDMIN*
The minimal character length of a word used for compounding is specified with
COMPOUNDMIN. Example:
***************
*** 1328,1333 ****
--- 1342,1361 ----
rules. Can also be used for an affix to count the affix as a compounding
word.
+ *spell-CHECKCOMPOUNDPATTERN*
+ CHECKCOMPOUNDPATTERN is used to define patterns that, when matching at the
+ position where two words are compounded together forbids the compound.
+ For example:
+ CHECKCOMPOUNDPATTERN o e ~
+
+ This forbids compounding if the first word ends in "o" and the second word
+ starts with "e".
+
+ The arguments must be plain text, no patterns are actually supported, despite
+ the item name. Case is always ignored.
+
+ The Hunspell feature to use three arguments and flags is not supported.
+
*spell-SYLLABLE*
The SYLLABLE item defines characters or character sequences that are used to
count the number of syllables in a word. Example:
***************
*** 1496,1501 ****
--- 1524,1533 ----
ACCENT (Hunspell) *spell-ACCENT*
Use MAP instead. |spell-MAP|
+ BREAK (Hunspell) *spell-BREAK*
+ Define break points. Unclear how it works exactly.
+ Not supported.
+
CHECKCOMPOUNDCASE (Hunspell) *spell-CHECKCOMPOUNDCASE*
Disallow uppercase letters at compound word boundaries.
Not supported.
***************
*** 1512,1520 ****
Forbid three identical characters when compounding. Not
supported.
- CHECKCOMPOUNDPATTERN (Hunspell) *spell-CHECKCOMPOUNDPATTERN*
- Forbid compounding when patterns match. Not supported.
-
COMPLEXPREFIXES (Hunspell) *spell-COMPLEXPREFIXES*
Enables using two prefixes. Not supported.
--- 1544,1549 ----
***************
*** 1536,1548 ****
COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE*
Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|
COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE*
Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE|
|spell-COMPOUNDSYLMAX|
! FORBIDDENWORD (Hunspell) *spell-FORBIDDENWORD*
! Use BAD instead. |spell-BAD|
!
LANG (Hunspell) *spell-LANG*
This specifies language-specific behavior. This actually
moves part of the language knowledge into the program,
--- 1565,1582 ----
COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE*
Use COMPOUNDRULE instead. |spell-COMPOUNDRULE|
+ COMPOUNDRULES (Hunspell) *spell-COMPOUNDRULES*
+ Number of COMPOUNDRULE lines following. Ignored, but the
+ argument must be a number.
+
COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE*
Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE|
|spell-COMPOUNDSYLMAX|
! KEY (Hunspell) *spell-KEY*
! Define characters that are close together on the keyboard.
! Used to give better suggestions. Not supported.
!
LANG (Hunspell) *spell-LANG*
This specifies language-specific behavior. This actually
moves part of the language knowledge into the program,
***************
*** 1553,1562 ****
Only needed for morphological analysis.
MAXNGRAMSUGS (Hunspell) *spell-MAXNGRAMSUGS*
! Not supported.
!
! ONLYINCOMPOUND (Hunspell) *spell-ONLYINCOMPOUND*
! Use NEEDCOMPOUND instead. |spell-NEEDCOMPOUND|
PSEUDOROOT (Hunspell) *spell-PSEUDOROOT*
Use NEEDAFFIX instead. |spell-NEEDAFFIX|
--- 1587,1593 ----
Only needed for morphological analysis.
MAXNGRAMSUGS (Hunspell) *spell-MAXNGRAMSUGS*
! Set number of n-gram suggestions. Not supported.
PSEUDOROOT (Hunspell) *spell-PSEUDOROOT*
Use NEEDAFFIX instead. |spell-NEEDAFFIX|
*** ../vim-7.2.059/src/spell.c Sat Nov 29 20:18:44 2008
--- src/spell.c Sun Nov 30 20:59:13 2008
***************
*** 469,474 ****
--- 469,475 ----
garray_T sl_comppat; /* CHECKCOMPOUNDPATTERN items */
regprog_T *sl_compprog; /* COMPOUNDRULE turned into a regexp progrm
* (NULL when no compounding) */
+ char_u *sl_comprules; /* all COMPOUNDRULE concatenated (or NULL) */
char_u *sl_compstartflags; /* flags for first compound word */
char_u *sl_compallflags; /* all flags for compound words */
char_u sl_nobreak; /* When TRUE: no spaces between words */
***************
*** 839,845 ****
--- 840,849 ----
static void slang_clear __ARGS((slang_T *lp));
static void slang_clear_sug __ARGS((slang_T *lp));
static void find_word __ARGS((matchinf_T *mip, int mode));
+ static int match_checkcompoundpattern __ARGS((char_u *ptr, int wlen, garray_T *gap));
static int can_compound __ARGS((slang_T *slang, char_u *word, char_u *flags));
+ static int can_be_compound __ARGS((trystate_T *sp, slang_T *slang, char_u *compflags, int flag));
+ static int match_compoundrule __ARGS((slang_T *slang, char_u *compflags));
static int valid_word_prefix __ARGS((int totprefcnt, int arridx, int flags, char_u *word, slang_T *slang, int cond_req));
static void find_prefix __ARGS((matchinf_T *mip, int mode));
static int fold_more __ARGS((matchinf_T *mip));
***************
*** 1519,1524 ****
--- 1523,1533 ----
((unsigned)flags >> 24)))
continue;
+ /* If there is a match with a CHECKCOMPOUNDPATTERN rule
+ * discard the compound word. */
+ if (match_checkcompoundpattern(ptr, wlen, &slang->sl_comppat))
+ continue;
+
if (mode == FIND_COMPOUND)
{
int capflags;
***************
*** 1577,1582 ****
--- 1586,1596 ----
if (!can_compound(slang, fword, mip->mi_compflags))
continue;
}
+ else if (slang->sl_comprules != NULL
+ && !match_compoundrule(slang, mip->mi_compflags))
+ /* The compound flags collected so far do not match any
+ * COMPOUNDRULE, discard the compounded word. */
+ continue;
}
/* Check NEEDCOMPOUND: can't use word without compounding. */
***************
*** 1727,1732 ****
--- 1741,1779 ----
}
/*
+ * Return TRUE if there is a match between the word ptr[wlen] and
+ * CHECKCOMPOUNDPATTERN rules, assuming that we will concatenate with another
+ * word.
+ * A match means that the first part of CHECKCOMPOUNDPATTERN matches at the
+ * end of ptr[wlen] and the second part matches after it.
+ */
+ static int
+ match_checkcompoundpattern(ptr, wlen, gap)
+ char_u *ptr;
+ int wlen;
+ garray_T *gap; /* &sl_comppat */
+ {
+ int i;
+ char_u *p;
+ int len;
+
+ for (i = 0; i + 1 < gap->ga_len; i += 2)
+ {
+ p = ((char_u **)gap->ga_data)[i + 1];
+ if (STRNCMP(ptr + wlen, p, STRLEN(p)) == 0)
+ {
+ /* Second part matches at start of following compound word, now
+ * check if first part matches at end of previous word. */
+ p = ((char_u **)gap->ga_data)[i];
+ len = STRLEN(p);
+ if (len <= wlen && STRNCMP(ptr + wlen - len, p, len) == 0)
+ return TRUE;
+ }
+ }
+ return FALSE;
+ }
+
+ /*
* Return TRUE if "flags" is a valid sequence of compound flags and "word"
* does not have too many syllables.
*/
***************
*** 1773,1778 ****
--- 1820,1917 ----
}
/*
+ * Return TRUE when the sequence of flags in "compflags" plus "flag" can
+ * possibly form a valid compounded word. This also checks the COMPOUNDRULE
+ * lines if they don't contain wildcards.
+ */
+ static int
+ can_be_compound(sp, slang, compflags, flag)
+ trystate_T *sp;
+ slang_T *slang;
+ char_u *compflags;
+ int flag;
+ {
+ /* If the flag doesn't appear in sl_compstartflags or sl_compallflags
+ * then it can't possibly compound. */
+ if (!byte_in_str(sp->ts_complen == sp->ts_compsplit
+ ? slang->sl_compstartflags : slang->sl_compallflags, flag))
+ return FALSE;
+
+ /* If there are no wildcards, we can check if the flags collected so far
+ * possibly can form a match with COMPOUNDRULE patterns. This only
+ * makes sense when we have two or more words. */
+ if (slang->sl_comprules != NULL && sp->ts_complen > sp->ts_compsplit)
+ {
+ int v;
+
+ compflags[sp->ts_complen] = flag;
+ compflags[sp->ts_complen + 1] = NUL;
+ v = match_compoundrule(slang, compflags + sp->ts_compsplit);
+ compflags[sp->ts_complen] = NUL;
+ return v;
+ }
+
+ return TRUE;
+ }
+
+
+ /*
+ * Return TRUE if the compound flags in compflags[] match the start of any
+ * compound rule. This is used to stop trying a compound if the flags
+ * collected so far can't possibly match any compound rule.
+ * Caller must check that slang->sl_comprules is not NULL.
+ */
+ static int
+ match_compoundrule(slang, compflags)
+ slang_T *slang;
+ char_u *compflags;
+ {
+ char_u *p;
+ int i;
+ int c;
+
+ /* loop over all the COMPOUNDRULE entries */
+ for (p = slang->sl_comprules; *p != NUL; ++p)
+ {
+ /* loop over the flags in the compound word we have made, match
+ * them against the current rule entry */
+ for (i = 0; ; ++i)
+ {
+ c = compflags[i];
+ if (c == NUL)
+ /* found a rule that matches for the flags we have so far */
+ return TRUE;
+ if (*p == '/' || *p == NUL)
+ break; /* end of rule, it's too short */
+ if (*p == '[')
+ {
+ int match = FALSE;
+
+ /* compare against all the flags in [] */
+ ++p;
+ while (*p != ']' && *p != NUL)
+ if (*p++ == c)
+ match = TRUE;
+ if (!match)
+ break; /* none matches */
+ }
+ else if (*p != c)
+ break; /* flag of word doesn't match flag in pattern */
+ ++p;
+ }
+
+ /* Skip to the next "/", where the next pattern starts. */
+ p = vim_strchr(p, '/');
+ if (p == NULL)
+ break;
+ }
+
+ /* Checked all the rules and none of them match the flags, so there
+ * can't possibly be a compound starting with these flags. */
+ return FALSE;
+ }
+
+ /*
* Return non-zero if the prefix indicated by "arridx" matches with the prefix
* ID in "flags" for the word "word".
* The WF_RAREPFX flag is included in the return value for a rare prefix.
***************
*** 2513,2521 ****
--- 2652,2662 ----
lp->sl_midword = NULL;
vim_free(lp->sl_compprog);
+ vim_free(lp->sl_comprules);
vim_free(lp->sl_compstartflags);
vim_free(lp->sl_compallflags);
lp->sl_compprog = NULL;
+ lp->sl_comprules = NULL;
lp->sl_compstartflags = NULL;
lp->sl_compallflags = NULL;
***************
*** 3460,3465 ****
--- 3601,3607 ----
char_u *pp;
char_u *cp;
char_u *ap;
+ char_u *crp;
int cnt;
garray_T *gap;
***************
*** 3545,3550 ****
--- 3687,3698 ----
slang->sl_compallflags = ap;
*ap = NUL;
+ /* And a list of all patterns in their original form, for checking whether
+ * compounding may work in match_compoundrule(). This is freed when we
+ * encounter a wildcard, the check doesn't work then. */
+ crp = alloc(todo + 1);
+ slang->sl_comprules = crp;
+
pp = pat;
*pp++ = '^';
*pp++ = '\\';
***************
*** 3587,3592 ****
--- 3735,3754 ----
atstart = 0;
}
}
+
+ /* Copy flag to "sl_comprules", unless we run into a wildcard. */
+ if (crp != NULL)
+ {
+ if (c == '+' || c == '*')
+ {
+ vim_free(slang->sl_comprules);
+ slang->sl_comprules = NULL;
+ crp = NULL;
+ }
+ else
+ *crp++ = c;
+ }
+
if (c == '/') /* slash separates two items */
{
*pp++ = '\\';
***************
*** 3611,3616 ****
--- 3773,3781 ----
*pp++ = '$';
*pp = NUL;
+ if (crp != NULL)
+ *crp = NUL;
+
slang->sl_compprog = vim_regcomp(pat, RE_MAGIC + RE_STRING + RE_STRICT);
vim_free(pat);
if (slang->sl_compprog == NULL)
***************
*** 4915,4920 ****
--- 5080,5086 ----
} spellinfo_T;
static afffile_T *spell_read_aff __ARGS((spellinfo_T *spin, char_u *fname));
+ static int is_aff_rule __ARGS((char_u **items, int itemcnt, char *rulename, int mincount));
static void aff_process_flags __ARGS((afffile_T *affile, affentry_T *entry));
static int spell_info_item __ARGS((char_u *s));
static unsigned affitem2flag __ARGS((int flagtype, char_u *item, char_u *fname, int lnum));
***************
*** 5223,5230 ****
/* Handle non-empty lines. */
if (itemcnt > 0)
{
! if (STRCMP(items[0], "SET") == 0 && itemcnt == 2
! && aff->af_enc == NULL)
{
#ifdef FEAT_MBYTE
/* Setup for conversion from "ENC" to 'encoding'. */
--- 5389,5395 ----
/* Handle non-empty lines. */
if (itemcnt > 0)
{
! if (is_aff_rule(items, itemcnt, "SET", 2) && aff->af_enc == NULL)
{
#ifdef FEAT_MBYTE
/* Setup for conversion from "ENC" to 'encoding'. */
***************
*** 5239,5245 ****
smsg((char_u *)_("Conversion in %s not supported"), fname);
#endif
}
! else if (STRCMP(items[0], "FLAG") == 0 && itemcnt == 2
&& aff->af_flagtype == AFT_CHAR)
{
if (STRCMP(items[1], "long") == 0)
--- 5404,5410 ----
smsg((char_u *)_("Conversion in %s not supported"), fname);
#endif
}
! else if (is_aff_rule(items, itemcnt, "FLAG", 2)
&& aff->af_flagtype == AFT_CHAR)
{
if (STRCMP(items[1], "long") == 0)
***************
*** 5284,5352 ****
spin->si_info = p;
}
}
! else if (STRCMP(items[0], "MIDWORD") == 0 && itemcnt == 2
&& midword == NULL)
{
midword = getroom_save(spin, items[1]);
}
! else if (STRCMP(items[0], "TRY") == 0 && itemcnt == 2)
{
/* ignored, we look in the tree for what chars may appear */
}
/* TODO: remove "RAR" later */
! else if ((STRCMP(items[0], "RAR") == 0
! || STRCMP(items[0], "RARE") == 0) && itemcnt == 2
! && aff->af_rare == 0)
{
aff->af_rare = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
/* TODO: remove "KEP" later */
! else if ((STRCMP(items[0], "KEP") == 0
! || STRCMP(items[0], "KEEPCASE") == 0) && itemcnt == 2
&& aff->af_keepcase == 0)
{
aff->af_keepcase = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (STRCMP(items[0], "BAD") == 0 && itemcnt == 2
! && aff->af_bad == 0)
{
aff->af_bad = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (STRCMP(items[0], "NEEDAFFIX") == 0 && itemcnt == 2
&& aff->af_needaffix == 0)
{
aff->af_needaffix = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (STRCMP(items[0], "CIRCUMFIX") == 0 && itemcnt == 2
&& aff->af_circumfix == 0)
{
aff->af_circumfix = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (STRCMP(items[0], "NOSUGGEST") == 0 && itemcnt == 2
&& aff->af_nosuggest == 0)
{
aff->af_nosuggest = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (STRCMP(items[0], "NEEDCOMPOUND") == 0 && itemcnt == 2
&& aff->af_needcomp == 0)
{
aff->af_needcomp = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (STRCMP(items[0], "COMPOUNDROOT") == 0 && itemcnt == 2
&& aff->af_comproot == 0)
{
aff->af_comproot = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (STRCMP(items[0], "COMPOUNDFORBIDFLAG") == 0
! && itemcnt == 2 && aff->af_compforbid == 0)
{
aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
--- 5449,5519 ----
spin->si_info = p;
}
}
! else if (is_aff_rule(items, itemcnt, "MIDWORD", 2)
&& midword == NULL)
{
midword = getroom_save(spin, items[1]);
}
! else if (is_aff_rule(items, itemcnt, "TRY", 2))
{
/* ignored, we look in the tree for what chars may appear */
}
/* TODO: remove "RAR" later */
! else if ((is_aff_rule(items, itemcnt, "RAR", 2)
! || is_aff_rule(items, itemcnt, "RARE", 2))
! && aff->af_rare == 0)
{
aff->af_rare = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
/* TODO: remove "KEP" later */
! else if ((is_aff_rule(items, itemcnt, "KEP", 2)
! || is_aff_rule(items, itemcnt, "KEEPCASE", 2))
&& aff->af_keepcase == 0)
{
aff->af_keepcase = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if ((is_aff_rule(items, itemcnt, "BAD", 2)
! || is_aff_rule(items, itemcnt, "FORBIDDENWORD", 2))
! && aff->af_bad == 0)
{
aff->af_bad = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (is_aff_rule(items, itemcnt, "NEEDAFFIX", 2)
&& aff->af_needaffix == 0)
{
aff->af_needaffix = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (is_aff_rule(items, itemcnt, "CIRCUMFIX", 2)
&& aff->af_circumfix == 0)
{
aff->af_circumfix = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (is_aff_rule(items, itemcnt, "NOSUGGEST", 2)
&& aff->af_nosuggest == 0)
{
aff->af_nosuggest = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if ((is_aff_rule(items, itemcnt, "NEEDCOMPOUND", 2)
! || is_aff_rule(items, itemcnt, "ONLYINCOMPOUND", 2))
&& aff->af_needcomp == 0)
{
aff->af_needcomp = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (is_aff_rule(items, itemcnt, "COMPOUNDROOT", 2)
&& aff->af_comproot == 0)
{
aff->af_comproot = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
}
! else if (is_aff_rule(items, itemcnt, "COMPOUNDFORBIDFLAG", 2)
! && aff->af_compforbid == 0)
{
aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
***************
*** 5354,5361 ****
smsg((char_u *)_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"),
fname, lnum);
}
! else if (STRCMP(items[0], "COMPOUNDPERMITFLAG") == 0
! && itemcnt == 2 && aff->af_comppermit == 0)
{
aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
--- 5521,5528 ----
smsg((char_u *)_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"),
fname, lnum);
}
! else if (is_aff_rule(items, itemcnt, "COMPOUNDPERMITFLAG", 2)
! && aff->af_comppermit == 0)
{
aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1],
fname, lnum);
***************
*** 5363,5369 ****
smsg((char_u *)_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"),
fname, lnum);
}
! else if (STRCMP(items[0], "COMPOUNDFLAG") == 0 && itemcnt == 2
&& compflags == NULL)
{
/* Turn flag "c" into COMPOUNDRULE compatible string "c+",
--- 5530,5536 ----
smsg((char_u *)_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"),
fname, lnum);
}
! else if (is_aff_rule(items, itemcnt, "COMPOUNDFLAG", 2)
&& compflags == NULL)
{
/* Turn flag "c" into COMPOUNDRULE compatible string "c+",
***************
*** 5376,5382 ****
compflags = p;
}
}
! else if (STRCMP(items[0], "COMPOUNDRULE") == 0 && itemcnt == 2)
{
/* Concatenate this string to previously defined ones, using a
* slash to separate them. */
--- 5543,5557 ----
compflags = p;
}
}
! else if (is_aff_rule(items, itemcnt, "COMPOUNDRULES", 2))
! {
! /* We don't use the count, but do check that it's a number and
! * not COMPOUNDRULE mistyped. */
! if (atoi((char *)items[1]) == 0)
! smsg((char_u *)_("Wrong COMPOUNDRULES value in %s line %d: %s"),
! fname, lnum, items[1]);
! }
! else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
{
/* Concatenate this string to previously defined ones, using a
* slash to separate them. */
***************
*** 5395,5401 ****
compflags = p;
}
}
! else if (STRCMP(items[0], "COMPOUNDWORDMAX") == 0 && itemcnt == 2
&& compmax == 0)
{
compmax = atoi((char *)items[1]);
--- 5570,5576 ----
compflags = p;
}
}
! else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2)
&& compmax == 0)
{
compmax = atoi((char *)items[1]);
***************
*** 5403,5409 ****
smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"),
fname, lnum, items[1]);
}
! else if (STRCMP(items[0], "COMPOUNDMIN") == 0 && itemcnt == 2
&& compminlen == 0)
{
compminlen = atoi((char *)items[1]);
--- 5578,5584 ----
smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"),
fname, lnum, items[1]);
}
! else if (is_aff_rule(items, itemcnt, "COMPOUNDMIN", 2)
&& compminlen == 0)
{
compminlen = atoi((char *)items[1]);
***************
*** 5411,5417 ****
smsg((char_u *)_("Wrong COMPOUNDMIN value in %s line %d: %s"),
fname, lnum, items[1]);
}
! else if (STRCMP(items[0], "COMPOUNDSYLMAX") == 0 && itemcnt == 2
&& compsylmax == 0)
{
compsylmax = atoi((char *)items[1]);
--- 5586,5592 ----
smsg((char_u *)_("Wrong COMPOUNDMIN value in %s line %d: %s"),
fname, lnum, items[1]);
}
! else if (is_aff_rule(items, itemcnt, "COMPOUNDSYLMAX", 2)
&& compsylmax == 0)
{
compsylmax = atoi((char *)items[1]);
***************
*** 5419,5450 ****
smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"),
fname, lnum, items[1]);
}
! else if (STRCMP(items[0], "CHECKCOMPOUNDDUP") == 0 && itemcnt == 1)
{
compoptions |= COMP_CHECKDUP;
}
! else if (STRCMP(items[0], "CHECKCOMPOUNDREP") == 0 && itemcnt == 1)
{
compoptions |= COMP_CHECKREP;
}
! else if (STRCMP(items[0], "CHECKCOMPOUNDCASE") == 0 && itemcnt == 1)
{
compoptions |= COMP_CHECKCASE;
}
! else if (STRCMP(items[0], "CHECKCOMPOUNDTRIPLE") == 0
! && itemcnt == 1)
{
compoptions |= COMP_CHECKTRIPLE;
}
! else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0
! && itemcnt == 2)
{
if (atoi((char *)items[1]) == 0)
smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"),
fname, lnum, items[1]);
}
! else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0
! && itemcnt == 3)
{
garray_T *gap = &spin->si_comppat;
int i;
--- 5594,5622 ----
smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"),
fname, lnum, items[1]);
}
! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDDUP", 1))
{
compoptions |= COMP_CHECKDUP;
}
! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDREP", 1))
{
compoptions |= COMP_CHECKREP;
}
! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDCASE", 1))
{
compoptions |= COMP_CHECKCASE;
}
! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDTRIPLE", 1))
{
compoptions |= COMP_CHECKTRIPLE;
}
! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 2))
{
if (atoi((char *)items[1]) == 0)
smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"),
fname, lnum, items[1]);
}
! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 3))
{
garray_T *gap = &spin->si_comppat;
int i;
***************
*** 5463,5486 ****
= getroom_save(spin, items[2]);
}
}
! else if (STRCMP(items[0], "SYLLABLE") == 0 && itemcnt == 2
&& syllable == NULL)
{
syllable = getroom_save(spin, items[1]);
}
! else if (STRCMP(items[0], "NOBREAK") == 0 && itemcnt == 1)
{
spin->si_nobreak = TRUE;
}
! else if (STRCMP(items[0], "NOSPLITSUGS") == 0 && itemcnt == 1)
{
spin->si_nosplitsugs = TRUE;
}
! else if (STRCMP(items[0], "NOSUGFILE") == 0 && itemcnt == 1)
{
spin->si_nosugfile = TRUE;
}
! else if (STRCMP(items[0], "PFXPOSTPONE") == 0 && itemcnt == 1)
{
aff->af_pfxpostpone = TRUE;
}
--- 5635,5658 ----
= getroom_save(spin, items[2]);
}
}
! else if (is_aff_rule(items, itemcnt, "SYLLABLE", 2)
&& syllable == NULL)
{
syllable = getroom_save(spin, items[1]);
}
! else if (is_aff_rule(items, itemcnt, "NOBREAK", 1))
{
spin->si_nobreak = TRUE;
}
! else if (is_aff_rule(items, itemcnt, "NOSPLITSUGS", 1))
{
spin->si_nosplitsugs = TRUE;
}
! else if (is_aff_rule(items, itemcnt, "NOSUGFILE", 1))
{
spin->si_nosugfile = TRUE;
}
! else if (is_aff_rule(items, itemcnt, "PFXPOSTPONE", 1))
{
aff->af_pfxpostpone = TRUE;
}
***************
*** 5771,5794 ****
}
}
}
! else if (STRCMP(items[0], "FOL") == 0 && itemcnt == 2
! && fol == NULL)
{
fol = vim_strsave(items[1]);
}
! else if (STRCMP(items[0], "LOW") == 0 && itemcnt == 2
! && low == NULL)
{
low = vim_strsave(items[1]);
}
! else if (STRCMP(items[0], "UPP") == 0 && itemcnt == 2
! && upp == NULL)
{
upp = vim_strsave(items[1]);
}
! else if ((STRCMP(items[0], "REP") == 0
! || STRCMP(items[0], "REPSAL") == 0)
! && itemcnt == 2)
{
/* Ignore REP/REPSAL count */;
if (!isdigit(*items[1]))
--- 5943,5962 ----
}
}
}
! else if (is_aff_rule(items, itemcnt, "FOL", 2) && fol == NULL)
{
fol = vim_strsave(items[1]);
}
! else if (is_aff_rule(items, itemcnt, "LOW", 2) && low == NULL)
{
low = vim_strsave(items[1]);
}
! else if (is_aff_rule(items, itemcnt, "UPP", 2) && upp == NULL)
{
upp = vim_strsave(items[1]);
}
! else if (is_aff_rule(items, itemcnt, "REP", 2)
! || is_aff_rule(items, itemcnt, "REPSAL", 2))
{
/* Ignore REP/REPSAL count */;
if (!isdigit(*items[1]))
***************
*** 5819,5825 ****
: &spin->si_rep, items[1], items[2]);
}
}
! else if (STRCMP(items[0], "MAP") == 0 && itemcnt == 2)
{
/* MAP item or count */
if (!found_map)
--- 5987,5993 ----
: &spin->si_rep, items[1], items[2]);
}
}
! else if (is_aff_rule(items, itemcnt, "MAP", 2))
{
/* MAP item or count */
if (!found_map)
***************
*** 5856,5864 ****
ga_append(&spin->si_map, '/');
}
}
! /* Accept "SAL from to" and "SAL from to # comment". */
! else if (STRCMP(items[0], "SAL") == 0
! && (itemcnt == 3 || (itemcnt > 3 && items[3][0] == '#')))
{
if (do_sal)
{
--- 6024,6031 ----
ga_append(&spin->si_map, '/');
}
}
! /* Accept "SAL from to" and "SAL from to #comment". */
! else if (is_aff_rule(items, itemcnt, "SAL", 3))
{
if (do_sal)
{
***************
*** 5877,5888 ****
: items[2]);
}
}
! else if (STRCMP(items[0], "SOFOFROM") == 0 && itemcnt == 2
&& sofofrom == NULL)
{
sofofrom = getroom_save(spin, items[1]);
}
! else if (STRCMP(items[0], "SOFOTO") == 0 && itemcnt == 2
&& sofoto == NULL)
{
sofoto = getroom_save(spin, items[1]);
--- 6044,6055 ----
: items[2]);
}
}
! else if (is_aff_rule(items, itemcnt, "SOFOFROM", 2)
&& sofofrom == NULL)
{
sofofrom = getroom_save(spin, items[1]);
}
! else if (is_aff_rule(items, itemcnt, "SOFOTO", 2)
&& sofoto == NULL)
{
sofoto = getroom_save(spin, items[1]);
***************
*** 6017,6022 ****
--- 6184,6205 ----
}
/*
+ * Return TRUE when items[0] equals "rulename", there are "mincount" items or
+ * a comment is following after item "mincount".
+ */
+ static int
+ is_aff_rule(items, itemcnt, rulename, mincount)
+ char_u **items;
+ int itemcnt;
+ char *rulename;
+ int mincount;
+ {
+ return (STRCMP(items[0], rulename) == 0
+ && (itemcnt == mincount
+ || (itemcnt > mincount && items[mincount][0] == '#')));
+ }
+
+ /*
* For affix "entry" move COMPOUNDFORBIDFLAG and COMPOUNDPERMITFLAG from
* ae_flags to ae_comppermit and ae_compforbid.
*/
***************
*** 11492,11506 ****
vim_strncpy(preword + sp->ts_prewordlen,
tword + sp->ts_splitoff,
sp->ts_twordlen - sp->ts_splitoff);
! p = preword;
! while (*skiptowhite(p) != NUL)
! p = skipwhite(skiptowhite(p));
! if (fword_ends && !can_compound(slang, p,
! compflags + sp->ts_compsplit))
! /* Compound is not allowed. But it may still be
! * possible if we add another (short) word. */
compound_ok = FALSE;
/* Get pointer to last char of previous word. */
p = preword + sp->ts_prewordlen;
mb_ptr_back(preword, p);
--- 11675,11698 ----
vim_strncpy(preword + sp->ts_prewordlen,
tword + sp->ts_splitoff,
sp->ts_twordlen - sp->ts_splitoff);
!
! /* Verify CHECKCOMPOUNDPATTERN rules. */
! if (match_checkcompoundpattern(preword, sp->ts_prewordlen,
! &slang->sl_comppat))
compound_ok = FALSE;
+ if (compound_ok)
+ {
+ p = preword;
+ while (*skiptowhite(p) != NUL)
+ p = skipwhite(skiptowhite(p));
+ if (fword_ends && !can_compound(slang, p,
+ compflags + sp->ts_compsplit))
+ /* Compound is not allowed. But it may still be
+ * possible if we add another (short) word. */
+ compound_ok = FALSE;
+ }
+
/* Get pointer to last char of previous word. */
p = preword + sp->ts_prewordlen;
mb_ptr_back(preword, p);
***************
*** 11697,11706 ****
&& (slang->sl_compsylmax < MAXWLEN
|| sp->ts_complen + 1 - sp->ts_compsplit
< slang->sl_compmax)
! && (byte_in_str(sp->ts_complen == sp->ts_compsplit
! ? slang->sl_compstartflags
! : slang->sl_compallflags,
! ((unsigned)flags >> 24))))
{
try_compound = TRUE;
compflags[sp->ts_complen] = ((unsigned)flags >> 24);
--- 11889,11897 ----
&& (slang->sl_compsylmax < MAXWLEN
|| sp->ts_complen + 1 - sp->ts_compsplit
< slang->sl_compmax)
! && (can_be_compound(sp, slang,
! compflags, ((unsigned)flags >> 24))))
!
{
try_compound = TRUE;
compflags[sp->ts_complen] = ((unsigned)flags >> 24);
*** ../vim-7.2.059/src/version.c Sun Nov 30 15:15:56 2008
--- src/version.c Sun Nov 30 21:09:23 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 60,
/**/
--
DEAD PERSON: I'm getting better!
CUSTOMER: No, you're not -- you'll be stone dead in a moment.
MORTICIAN: Oh, I can't take him like that -- it's against regulations.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--- NEW FILE filetype.vim ---
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram at vim.org>
" Last Change: 2008 Nov 01
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
finish
endif
let did_load_filetypes = 1
" Line continuation is used here, remove 'C' from 'cpoptions'
let s:cpo_save = &cpo
set cpo&vim
augroup filetypedetect
" Ignored extensions
if exists("*fnameescape")
au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.rpmsave,?\+.rpmnew
\ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
au BufNewFile,BufRead *~
\ let s:name = expand("<afile>") |
\ let s:short = substitute(s:name, '\~$', '', '') |
\ if s:name != s:short && s:short != "" |
\ exe "doau filetypedetect BufRead " . fnameescape(s:short) |
\ endif |
\ unlet! s:name s:short
au BufNewFile,BufRead ?\+.in
\ if expand("<afile>:t") != "configure.in" |
\ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) |
\ endif
elseif &verbose > 0
echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()"
endif
" Pattern used to match file names which should not be inspected.
" Currently finds compressed files.
if !exists("g:ft_ignore_pat")
let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
endif
" Function used for patterns that end in a star: don't set the filetype if the
" file name matches ft_ignore_pat.
func! s:StarSetf(ft)
if expand("<amatch>") !~ g:ft_ignore_pat
exe 'setf ' . a:ft
endif
endfunc
" Abaqus or Trasys
au BufNewFile,BufRead *.inp call s:Check_inp()
func! s:Check_inp()
if getline(1) =~ '^\*'
setf abaqus
else
let n = 1
if line("$") > 500
let nmax = 500
else
let nmax = line("$")
endif
while n <= nmax
if getline(n) =~? "^header surface data"
setf trasys
break
endif
let n = n + 1
endwhile
endif
endfunc
" A-A-P recipe
au BufNewFile,BufRead *.aap setf aap
" A2ps printing utility
au BufNewFile,BufRead etc/a2ps.cfg,etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps
" ABAB/4
au BufNewFile,BufRead *.abap setf abap
" ABC music notation
au BufNewFile,BufRead *.abc setf abc
" ABEL
au BufNewFile,BufRead *.abl setf abel
" AceDB
au BufNewFile,BufRead *.wrm setf acedb
" Ada (83, 9X, 95)
au BufNewFile,BufRead *.adb,*.ads,*.ada setf ada
if has("vms")
au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada
else
au BufNewFile,BufRead *.gpr setf ada
endif
" AHDL
au BufNewFile,BufRead *.tdf setf ahdl
" AMPL
au BufNewFile,BufRead *.run setf ampl
" Ant
au BufNewFile,BufRead build.xml setf ant
" Apache style config file
au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
" Apache config file
au BufNewFile,BufRead .htaccess setf apache
au BufNewFile,BufRead httpd.conf*,srm.conf*,access.conf*,apache.conf*,apache2.conf*,/etc/apache2/*.conf* call s:StarSetf('apache')
" XA65 MOS6510 cross assembler
au BufNewFile,BufRead *.a65 setf a65
" Applescript
au BufNewFile,BufRead *.scpt setf applescript
" Applix ELF
au BufNewFile,BufRead *.am
\ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif
" ALSA configuration
au BufNewFile,BufRead ~/.asoundrc,/usr/share/alsa/alsa.conf,/etc/asound.conf setf alsaconf
" Arc Macro Language
au BufNewFile,BufRead *.aml setf aml
" Arch Inventory file
au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch
" ART*Enterprise (formerly ART-IM)
au BufNewFile,BufRead *.art setf art
" ASN.1
au BufNewFile,BufRead *.asn,*.asn1 setf asn
" Active Server Pages (with Visual Basic Script)
au BufNewFile,BufRead *.asa
\ if exists("g:filetype_asa") |
\ exe "setf " . g:filetype_asa |
\ else |
\ setf aspvbs |
\ endif
" Active Server Pages (with Perl or Visual Basic Script)
au BufNewFile,BufRead *.asp
\ if exists("g:filetype_asp") |
\ exe "setf " . g:filetype_asp |
\ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" |
\ setf aspperl |
\ else |
\ setf aspvbs |
\ endif
" Grub (must be before catch *.lst)
au BufNewFile,BufRead /boot/grub/menu.lst,/boot/grub/grub.conf,/etc/grub.conf setf grub
" Assembly (all kinds)
" *.lst is not pure assembly, it has two extra columns (address, byte codes)
au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call s:FTasm()
" This function checks for the kind of assembly that is wanted by the user, or
" can be detected from the first five lines of the file.
func! s:FTasm()
" make sure b:asmsyntax exists
if !exists("b:asmsyntax")
let b:asmsyntax = ""
endif
if b:asmsyntax == ""
call s:FTasmsyntax()
endif
" if b:asmsyntax still isn't set, default to asmsyntax or GNU
if b:asmsyntax == ""
if exists("g:asmsyntax")
let b:asmsyntax = g:asmsyntax
else
let b:asmsyntax = "asm"
endif
endif
exe "setf " . fnameescape(b:asmsyntax)
endfunc
func! s:FTasmsyntax()
" see if file contains any asmsyntax=foo overrides. If so, change
" b:asmsyntax appropriately
let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
\" ".getline(5)." "
let match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
if match != ''
let b:asmsyntax = match
elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
let b:asmsyntax = "vmasm"
[...2050 lines suppressed...]
endwhile
setf yacc
endfunc
" Yaml
au BufNewFile,BufRead *.yaml,*.yml setf yaml
" Zope
" dtml (zope dynamic template markup language), pt (zope page template),
" cpt (zope form controller page template)
au BufNewFile,BufRead *.dtml,*.pt,*.cpt call s:FThtml()
" zsql (zope sql method)
au BufNewFile,BufRead *.zsql call s:SQL()
" Z80 assembler asz80
au BufNewFile,BufRead *.z8a setf z8a
augroup END
" Source the user-specified filetype file, for backwards compatibility with
" Vim 5.x.
if exists("myfiletypefile") && filereadable(expand(myfiletypefile))
execute "source " . myfiletypefile
endif
" Check for "*" after loading myfiletypefile, so that scripts.vim is only used
" when there are no matching file name extensions.
" Don't do this for compressed files.
augroup filetypedetect
au BufNewFile,BufRead *
\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
\ | runtime! scripts.vim | endif
au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif
" Extra checks for when no filetype has been detected now. Mostly used for
" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim
" script file.
" Most of these should call s:StarSetf() to avoid names ending in .gz and the
" like are used.
" More Apache files.
au BufNewFile,BufRead /etc/apache2/conf.*/*,/etc/apache2/sites-*/*,/etc/apache2/mods-*/* call s:StarSetf('apache')
" Asterisk config file
au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk')
au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm')
" Bazaar version control
au BufNewFile,BufRead bzr_log.* setf bzr
" BIND zone
au BufNewFile,BufRead */named/db.*,*/bind/db.* call s:StarSetf('bindzone')
" Changelog
au BufNewFile,BufRead [cC]hange[lL]og*
\ if getline(1) =~ '; urgency='
\| call s:StarSetf('debchangelog')
\|else
\| call s:StarSetf('changelog')
\|endif
" Crontab
au BufNewFile,BufRead crontab,crontab.*,/etc/cron.d/* call s:StarSetf('crontab')
" Debian Sources.list
au BufNewFile,BufRead /etc/apt/sources.list.d/* call s:StarSetf('debsources')
" Dracula
au BufNewFile,BufRead drac.* call s:StarSetf('dracula')
" Fvwm
au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm')
au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook
\ let b:fvwm_version = 1 | call s:StarSetf('fvwm')
au BufNewFile,BufRead *fvwm2rc*
\ if expand("<afile>:e") == "m4"
\| call s:StarSetf('fvwm2m4')
\|else
\| let b:fvwm_version = 2 | call s:StarSetf('fvwm')
\|endif
" GTK RC
au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc')
" Jam
au BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam')
" Jargon
au! BufNewFile,BufRead *jarg*
\ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE'
\| call s:StarSetf('jargon')
\|endif
" Kconfig
au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig')
" Makefile
au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make')
" Ruby Makefile
au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
" Mail (also matches muttrc.vim, so this is below the other checks)
au BufNewFile,BufRead mutt[[:alnum:]._-]\{6\} setf mail
" Modconf
au BufNewFile,BufRead /etc/modprobe.* call s:StarSetf('modconf')
" Mutt setup file
au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc')
au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
" Nroff macros
au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')
" Pam conf
au BufNewFile,BufRead /etc/pam.d/* call s:StarSetf('pamconf')
" Printcap and Termcap
au BufNewFile,BufRead *printcap*
\ if !did_filetype()
\| let b:ptcap_type = "print" | call s:StarSetf('ptcap')
\|endif
au BufNewFile,BufRead *termcap*
\ if !did_filetype()
\| let b:ptcap_type = "term" | call s:StarSetf('ptcap')
\|endif
" Vim script
au BufNewFile,BufRead *vimrc* call s:StarSetf('vim')
" Subversion commit file
au BufNewFile,BufRead svn-commit*.tmp setf svn
" X resources file
au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults')
" XFree86 config
au BufNewFile,BufRead XF86Config-4*
\ let b:xf86c_xfree86_version = 4 | call s:StarSetf('xf86conf')
au BufNewFile,BufRead XF86Config*
\ if getline(1) =~ '\<XConfigurator\>'
\| let b:xf86c_xfree86_version = 3
\|endif
\|call s:StarSetf('xf86conf')
" X11 xmodmap
au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap')
" Xinetd conf
au BufNewFile,BufRead /etc/xinetd.d/* call s:StarSetf('xinetd')
" Z-Shell script
au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
" Generic configuration file (check this last, it's just guessing!)
au BufNewFile,BufRead,StdinReadPost *
\ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
\ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
\ || getline(4) =~ '^#' || getline(5) =~ '^#') |
\ setf conf |
\ endif
" Use the plugin-filetype checks last, they may overrule any of the previously
" detected filetypes.
runtime! ftdetect/*.vim
augroup END
" If the GUI is already running, may still need to install the Syntax menu.
" Don't do it when the 'M' flag is included in 'guioptions'.
if has("menu") && has("gui_running")
\ && !exists("did_install_syntax_menu") && &guioptions !~# "M"
source <sfile>:p:h/menu.vim
endif
" Function called for testing all functions defined here. These are
" script-local, thus need to be executed here.
" Returns a string with error messages (hopefully empty).
func! TestFiletypeFuncs(testlist)
let output = ''
for f in a:testlist
try
exe f
catch
let output = output . "\n" . f . ": " . v:exception
endtry
endfor
return output
endfunc
" Restore 'cpoptions'
let &cpo = s:cpo_save
unlet s:cpo_save
--- NEW FILE gzip.vim ---
" Vim plugin for editing compressed files.
" Maintainer: Bram Moolenaar <Bram at vim.org>
" Last Change: 2005 Jul 26
" Exit quickly when:
" - this plugin was already loaded
" - when 'compatible' is set
" - some autocommands are already taking care of compressed files
if exists("loaded_gzip") || &cp || exists("#BufReadPre#*.gz")
finish
endif
let loaded_gzip = 1
augroup gzip
" Remove all gzip autocommands
au!
" Enable editing of gzipped files.
" The functions are defined in autoload/gzip.vim.
"
" Set binary mode before reading the file.
" Use "gzip -d", gunzip isn't always available.
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z setlocal bin
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
autocmd FileAppendPre *.Z call gzip#appre("uncompress")
autocmd FileAppendPost *.gz call gzip#write("gzip")
autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
autocmd FileAppendPost *.Z call gzip#write("compress -f")
augroup END
--- NEW FILE netrw.vim ---
" netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION
" Date: Oct 23, 2008
" Version: 134
" Maintainer: Charles E Campbell, Jr <NdrOchip at ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
" *as is* and come with no warranty of any kind, either
" expressed or implied. By using this plugin, you agree that
" in no event will the copyright holder be liable for any damages
" resulting from the use of this software.
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
"
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
" (James 1:22 RSV)
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
" Load Once: {{{1
if &cp || exists("g:loaded_netrw")
finish
endif
let g:loaded_netrw = "v134"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrw needs vim 7.2"
echohl Normal
finish
endif
if !exists("s:NOTE")
let s:NOTE = 0
let s:WARNING = 1
let s:ERROR = 2
endif
" sanity checks
if v:version < 700
call netrw#ErrorMsg(s:WARNING,"you need vim version 7.0 or later for version ".g:loaded_netrw." of netrw",1)
finish
endif
let s:keepcpo= &cpo
setlocal cpo&vim
"DechoTabOn
"call Decho("doing autoload/netrw.vim version ".g:loaded_netrw)
" ======================
" Netrw Variables: {{{1
" ======================
" ---------------------------------------------------------------------
" Netrw Constants: {{{2
if !exists("g:netrw_dirhist_cnt")
let g:netrw_dirhist_cnt= 0
endif
if !exists("s:LONGLIST")
let s:THINLIST = 0
let s:LONGLIST = 1
let s:WIDELIST = 2
let s:TREELIST = 3
let s:MAXLIST = 4
endif
" ---------------------------------------------------------------------
" Default values for netrw's global protocol variables {{{2
if !exists("g:netrw_dav_cmd")
if executable("cadaver")
let g:netrw_dav_cmd = "cadaver"
elseif executable("curl")
let g:netrw_dav_cmd = "curl"
else
let g:netrw_dav_cmd = ""
endif
endif
if !exists("g:netrw_fetch_cmd")
if executable("fetch")
let g:netrw_fetch_cmd = "fetch -o"
else
let g:netrw_fetch_cmd = ""
endif
endif
if !exists("g:netrw_ftp_cmd")
let g:netrw_ftp_cmd = "ftp"
endif
if !exists("g:netrw_http_cmd")
if executable("elinks")
let g:netrw_http_cmd = "elinks"
if !exists("g:netrw_http_xcmd")
let g:netrw_http_xcmd= "-dump >"
endif
elseif executable("links")
let g:netrw_http_cmd = "links"
if !exists("g:netrw_http_xcmd")
let g:netrw_http_xcmd= "-dump >"
endif
elseif executable("curl")
let g:netrw_http_cmd = "curl"
if !exists("g:netrw_http_xcmd")
let g:netrw_http_xcmd= "-o"
endif
elseif executable("wget")
let g:netrw_http_cmd = "wget"
if !exists("g:netrw_http_xcmd")
let g:netrw_http_xcmd= "-q -O"
endif
elseif executable("fetch")
let g:netrw_http_cmd = "fetch"
if !exists("g:netrw_http_xcmd")
let g:netrw_http_xcmd= "-o"
endif
else
let g:netrw_http_cmd = ""
endif
endif
if !exists("g:netrw_rcp_cmd")
let g:netrw_rcp_cmd = "rcp"
endif
if !exists("g:netrw_rsync_cmd")
let g:netrw_rsync_cmd = "rsync"
endif
if !exists("g:netrw_scp_cmd")
let g:netrw_scp_cmd = "scp -q"
endif
if !exists("g:netrw_sftp_cmd")
let g:netrw_sftp_cmd = "sftp"
endif
if !exists("g:netrw_ssh_cmd")
let g:netrw_ssh_cmd= "ssh"
endif
if (has("win32") || has("win95") || has("win64") || has("win16"))
\ && exists("g:netrw_use_nt_rcp")
\ && g:netrw_use_nt_rcp
\ && executable( $SystemRoot .'/system32/rcp.exe')
let s:netrw_has_nt_rcp = 1
let s:netrw_rcpmode = '-b'
else
let s:netrw_has_nt_rcp = 0
let s:netrw_rcpmode = ''
endif
" ---------------------------------------------------------------------
" Default values for netrw's global variables {{{2
" Cygwin Detection ------- {{{3
if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
let g:netrw_cygwin= 1
else
let g:netrw_cygwin= 0
endif
else
let g:netrw_cygwin= 0
endif
endif
" Default values - a-c ---------- {{{3
if !exists("g:netrw_alto")
let g:netrw_alto= &sb
endif
if !exists("g:netrw_altv")
let g:netrw_altv= &spr
endif
if !exists("g:netrw_browse_split")
let g:netrw_browse_split= 0
endif
if !exists("g:netrw_chgwin")
let g:netrw_chgwin = -1
endif
if !exists("g:netrw_compress")
let g:netrw_compress= "gzip"
endif
if !exists("g:netrw_ctags")
let g:netrw_ctags= "ctags"
endif
if !exists("g:netrw_cursorline")
let g:netrw_cursorline= 1
let s:netrw_usercul = &cursorline
let s:netrw_usercuc = &cursorcolumn
endif
" Default values - d-g ---------- {{{3
if !exists("g:netrw_dirhist_cnt")
let g:netrw_dirhist_cnt= 0
endif
if !exists("g:netrw_decompress")
let g:netrw_decompress= { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf"}
endif
if !exists("g:netrw_dirhistmax")
let g:netrw_dirhistmax= 10
endif
if !exists("g:netrw_fastbrowse")
let g:netrw_fastbrowse= 1
endif
if !exists("g:netrw_ftp_browse_reject")
let g:netrw_ftp_browse_reject='^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$'
endif
if !exists("g:netrw_ftp_list_cmd")
if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)
[...7612 lines suppressed...]
" UseBufWinVars() get around that.
fun! s:SetBufWinVars()
" call Dfunc("s:SetBufWinVars()")
if exists("w:netrw_liststyle") |let b:netrw_liststyle = w:netrw_liststyle |endif
if exists("w:netrw_bannercnt") |let b:netrw_bannercnt = w:netrw_bannercnt |endif
if exists("w:netrw_method") |let b:netrw_method = w:netrw_method |endif
if exists("w:netrw_prvdir") |let b:netrw_prvdir = w:netrw_prvdir |endif
if exists("w:netrw_explore_indx") |let b:netrw_explore_indx = w:netrw_explore_indx |endif
if exists("w:netrw_explore_listlen")|let b:netrw_explore_listlen= w:netrw_explore_listlen|endif
if exists("w:netrw_explore_mtchcnt")|let b:netrw_explore_mtchcnt= w:netrw_explore_mtchcnt|endif
if exists("w:netrw_explore_bufnr") |let b:netrw_explore_bufnr = w:netrw_explore_bufnr |endif
if exists("w:netrw_explore_line") |let b:netrw_explore_line = w:netrw_explore_line |endif
if exists("w:netrw_explore_list") |let b:netrw_explore_list = w:netrw_explore_list |endif
" call Dret("s:SetBufWinVars")
endfun
" ---------------------------------------------------------------------
" s:SetRexDir: set directory for :Rexplore {{{2
fun! s:SetRexDir(islocal,dirname)
" call Dfunc("s:SetRexDir(islocal=".a:islocal." dirname<".a:dirname.">)")
" set up Rex and leftmouse-double-click
if a:islocal
exe 'com! Rexplore call s:NetrwRexplore(1,"'.escape(a:dirname,'"\').'")'
if g:netrw_retmap
if !hasmapto("<Plug>NetrwReturn") && maparg("<2-leftmouse>","n") == ""
nmap <unique> <silent> <2-leftmouse> <Plug>NetrwReturn
endif
let dir = escape(a:dirname, s:netrw_map_escape)
exe 'nnoremap <silent> <Plug>NetrwReturn :call <SID>NetrwRexplore(1,"'.dir.'")<cr>'
endif
else
exe 'com! Rexplore call s:NetrwRexplore(0,"'.escape(a:dirname,'"\').'")'
if g:netrw_retmap
if !hasmapto("<Plug>NetrwReturn") && maparg("<2-leftmouse>","n") == ""
nmap <unique> <silent> <2-leftmouse> <Plug>NetrwReturn
endif
let dir = escape(a:dirname, s:netrw_map_escape)
exe 'nnoremap <silent> <Plug>NetrwReturn :call <SID>NetrwRexplore(0,"'.dir.'")<cr>'
endif
endif
" call Dret("s:SetRexDir")
endfun
" ---------------------------------------------------------------------
" s:Strlen: this function returns the length of a string, even if its {{{2
" using two-byte etc characters.
" Currently, its only used if g:Align_xstrlen is set to a
" nonzero value. Solution from Nicolai Weibull, vim docs
" (:help strlen()), Tony Mechelynck, and my own invention.
fun! s:Strlen(x)
" call Dfunc("s:Strlen(x<".a:x.">")
if g:netrw_xstrlen == 1
" number of codepoints (Latin a + combining circumflex is two codepoints)
" (comment from TM, solution from NW)
let ret= strlen(substitute(a:x,'.','c','g'))
elseif g:netrw_xstrlen == 2
" number of spacing codepoints (Latin a + combining circumflex is one spacing
" codepoint; a hard tab is one; wide and narrow CJK are one each; etc.)
" (comment from TM, solution from TM)
let ret=strlen(substitute(a:x, '.\Z', 'x', 'g'))
elseif g:netrw_xstrlen == 3
" virtual length (counting, for instance, tabs as anything between 1 and
" 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately
" preceded by lam, one otherwise, etc.)
" (comment from TM, solution from me)
let modkeep= &mod
exe "norm! o\<esc>"
call setline(line("."),a:x)
let ret= virtcol("$") - 1
d
let &mod= modkeep
else
" at least give a decent default
ret= strlen(a:x)
endif
" call Dret("s:Strlen ".ret)
return ret
endfun
" ---------------------------------------------------------------------
" s:TreeListMove: {{{2
fun! s:TreeListMove(dir)
" call Dfunc("s:TreeListMove(dir<".a:dir.">)")
let curline = getline('.')
let prvline = (line(".") > 1)? getline(line(".")-1) : ''
let nxtline = (line(".") < line("$"))? getline(line(".")+1) : ''
let curindent= substitute(curline,'^\([| ]*\).\{-}$','\1','')
let indentm1 = substitute(curindent,'^| ','','')
" call Decho("prvline <".prvline."> #".line(".")-1)
" call Decho("curline <".curline."> #".line("."))
" call Decho("nxtline <".nxtline."> #".line(".")+1)
" call Decho("curindent<".curindent.">")
" call Decho("indentm1 <".indentm1.">")
if curline !~ '/$'
" call Decho('regfile')
if a:dir == '[' && prvline != ''
norm! 0
let nl = search('^'.indentm1.'[^|]','bWe') " search backwards from regular file
" call Decho("regfile srch back: ".nl)
elseif a:dir == ']' && nxtline != ''
norm! $
let nl = search('^'.indentm1.'[^|]','We') " search forwards from regular file
" call Decho("regfile srch fwd: ".nl)
endif
elseif a:dir == '[' && prvline != ''
norm! 0
let curline= line(".")
let nl = search('^'.curindent.'[^|]','bWe') " search backwards From directory, same indentation
" call Decho("dir srch back ind: ".nl)
if nl != 0
if line(".") == curline-1
let nl= search('^'.indentm1.'[^|]','bWe') " search backwards from directory, indentation - 1
" call Decho("dir srch back ind-1: ".nl)
endif
endif
elseif a:dir == ']' && nxtline != ''
norm! $
let curline = line(".")
let nl = search('^'.curindent.'[^|]','We') " search forwards from directory, same indentation
" call Decho("dir srch fwd ind: ".nl)
if nl != 0
if line(".") == curline+1
let nl= search('^'.indentm1.'[^|]','We') " search forwards from directory, indentation - 1
" call Decho("dir srch fwd ind-1: ".nl)
endif
endif
endif
" call Dret("s:TreeListMove")
endfun
" ---------------------------------------------------------------------
" s:UpdateBuffersMenu: does emenu Buffers.Refresh (but due to locale, the menu item may not be called that) {{{2
" The Buffers.Refresh menu calls s:BMShow(); unfortunately, that means that that function
" can't be called except via emenu. But due to locale, that menu line may not be called
" Buffers.Refresh; hence, s:NetrwBMShow() utilizes a "cheat" to call that function anyway.
fun! s:UpdateBuffersMenu()
" call Dfunc("s:UpdateBuffersMenu()")
if has("gui") && has("menu") && has("gui_running") && &go =~ 'm'
try
silent emenu Buffers.Refresh\ menu
catch /^Vim\%((\a\+)\)\=:E/
let v:errmsg= ""
silent call s:NetrwBMShow()
endtry
endif
" call Dret("s:UpdateBuffersMenu")
endfun
" ---------------------------------------------------------------------
" s:UseBufWinVars: (used by NetrwBrowse() and LocalBrowseCheck() {{{2
" Matching function to BufferWinVars()
fun! s:UseBufWinVars()
" call Dfunc("s:UseBufWinVars()")
if exists("b:netrw_liststyle") && !exists("w:netrw_liststyle") |let w:netrw_liststyle = b:netrw_liststyle |endif
if exists("b:netrw_bannercnt") && !exists("w:netrw_bannercnt") |let w:netrw_bannercnt = b:netrw_bannercnt |endif
if exists("b:netrw_method") && !exists("w:netrw_method") |let w:netrw_method = b:netrw_method |endif
if exists("b:netrw_prvdir") && !exists("w:netrw_prvdir") |let w:netrw_prvdir = b:netrw_prvdir |endif
if exists("b:netrw_explore_indx") && !exists("w:netrw_explore_indx") |let w:netrw_explore_indx = b:netrw_explore_indx |endif
if exists("b:netrw_explore_listlen") && !exists("w:netrw_explore_listlen")|let w:netrw_explore_listlen = b:netrw_explore_listlen|endif
if exists("b:netrw_explore_mtchcnt") && !exists("w:netrw_explore_mtchcnt")|let w:netrw_explore_mtchcnt = b:netrw_explore_mtchcnt|endif
if exists("b:netrw_explore_bufnr") && !exists("w:netrw_explore_bufnr") |let w:netrw_explore_bufnr = b:netrw_explore_bufnr |endif
if exists("b:netrw_explore_line") && !exists("w:netrw_explore_line") |let w:netrw_explore_line = b:netrw_explore_line |endif
if exists("b:netrw_explore_list") && !exists("w:netrw_explore_list") |let w:netrw_explore_list = b:netrw_explore_list |endif
" call Dret("s:UseBufWinVars")
endfun
" ---------------------------------------------------------------------
" s:WinPath: {{{2
fun! s:WinPath(path)
" call Dfunc("s:WinPath(path<".a:path.">)")
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
" remove trailing slash (Win95)
let path = substitute(a:path, '\(\\\|/\)$', '', 'g')
" remove escaped spaces
let path = substitute(path, '\ ', ' ', 'g')
" convert slashes to backslashes
let path = substitute(path, '/', '\', 'g')
else
let path= a:path
endif
" call Dret("s:WinPath <".path.">")
return path
endfun
" ---------------------------------------------------------------------
" Settings Restoration: {{{2
let &cpo= s:keepcpo
unlet s:keepcpo
" ------------------------------------------------------------------------
" Modelines: {{{1
" vim:ts=8 fdm=marker
--- NEW FILE netrwFileHandlers.vim ---
" netrwFileHandlers: contains various extension-based file handlers for
" netrw's browsers' x command ("eXecute launcher")
" Author: Charles E. Campbell, Jr.
" Date: Sep 30, 2008
" Version: 10
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" netrwFileHandlers.vim is provided *as is* and comes with no
" warranty of any kind, either expressed or implied. In no
" event will the copyright holder be liable for any damages
" resulting from the use of this software.
"
" Rom 6:23 (WEB) For the wages of sin is death, but the free gift of God {{{1
" is eternal life in Christ Jesus our Lord.
" ---------------------------------------------------------------------
" Load Once: {{{1
if exists("g:loaded_netrwFileHandlers") || &cp
finish
endif
let g:loaded_netrwFileHandlers= "v10"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
" ---------------------------------------------------------------------
" netrwFileHandlers#Invoke: {{{1
fun! netrwFileHandlers#Invoke(exten,fname)
" call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)")
let fname= a:fname
" list of supported special characters. Consider rcs,v --- that can be
" supported with a NFH_rcsCOMMAv() handler
if a:fname =~ '[@:,$!=\-+%?;~]'
let specials= {
\ '@' : 'AT',
\ ':' : 'COLON',
\ ',' : 'COMMA',
\ '$' : 'DOLLAR',
\ '!' : 'EXCLAMATION',
\ '=' : 'EQUAL',
\ '-' : 'MINUS',
\ '+' : 'PLUS',
\ '%' : 'PERCENT',
\ '?' : 'QUESTION',
\ ';' : 'SEMICOLON',
\ '~' : 'TILDE'}
let fname= substitute(a:fname,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
" call Decho('fname<'.fname.'> done with dictionary')
endif
if a:exten != "" && exists("*NFH_".a:exten)
" support user NFH_*() functions
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= NFH_".a:exten.'("'.fname.'")'
elseif a:exten != "" && exists("*s:NFH_".a:exten)
" use builtin-NFH_*() functions
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= s:NFH_".a:exten.'("'.fname.'")'
endif
" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)
return 0
endfun
" ---------------------------------------------------------------------
" s:NFH_html: handles html when the user hits "x" when the {{{1
" cursor is atop a *.html file
fun! s:NFH_html(pagefile)
" call Dfunc("s:NFH_html(".a:pagefile.")")
let page= substitute(a:pagefile,'^','file://','')
if executable("mozilla")
" call Decho("executing !mozilla ".page)
exe "!mozilla ".shellescape(page,1)
elseif executable("netscape")
" call Decho("executing !netscape ".page)
exe "!netscape ".shellescape(page,1)
else
" call Dret("s:NFH_html 0")
return 0
endif
" call Dret("s:NFH_html 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_htm: handles html when the user hits "x" when the {{{1
" cursor is atop a *.htm file
fun! s:NFH_htm(pagefile)
" call Dfunc("s:NFH_htm(".a:pagefile.")")
let page= substitute(a:pagefile,'^','file://','')
if executable("mozilla")
" call Decho("executing !mozilla ".page)
exe "!mozilla ".shellescape(page,1)
elseif executable("netscape")
" call Decho("executing !netscape ".page)
exe "!netscape ".shellescape(page,1)
else
" call Dret("s:NFH_htm 0")
return 0
endif
" call Dret("s:NFH_htm 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_jpg: {{{1
fun! s:NFH_jpg(jpgfile)
" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
else
" call Dret("s:NFH_jpg 0")
return 0
endif
" call Dret("s:NFH_jpg 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_gif: {{{1
fun! s:NFH_gif(giffile)
" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
if executable("gimp")
exe "silent! !gimp -s ".shellescape(a:giffile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
else
" call Dret("s:NFH_gif 0")
return 0
endif
" call Dret("s:NFH_gif 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_png: {{{1
fun! s:NFH_png(pngfile)
" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".shellescape(a:pngfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
else
" call Dret("s:NFH_png 0")
return 0
endif
" call Dret("s:NFH_png 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_pnm: {{{1
fun! s:NFH_pnm(pnmfile)
" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
else
" call Dret("s:NFH_pnm 0")
return 0
endif
" call Dret("s:NFH_pnm 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_bmp: visualize bmp files {{{1
fun! s:NFH_bmp(bmpfile)
" call Dfunc("s:NFH_bmp(bmpfile<".a:bmpfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:bmpfile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
else
" call Dret("s:NFH_bmp 0")
return 0
endif
" call Dret("s:NFH_bmp 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_pdf: visualize pdf files {{{1
fun! s:NFH_pdf(pdf)
" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
if executable("gs")
exe 'silent! !gs '.shellescape(a:pdf,1)
elseif executable("pdftotext")
exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
else
" call Dret("s:NFH_pdf 0")
return 0
endif
" call Dret("s:NFH_pdf 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_doc: visualize doc files {{{1
fun! s:NFH_doc(doc)
" call Dfunc("s:NFH_doc(doc<".a:doc.">)")
if executable("oowriter")
exe 'silent! !oowriter '.shellescape(a:doc,1)
redraw!
else
" call Dret("s:NFH_doc 0")
return 0
endif
" call Dret("s:NFH_doc 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_sxw: visualize sxw files {{{1
fun! s:NFH_sxw(sxw)
" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
if executable("oowriter")
exe 'silent! !oowriter '.shellescape(a:sxw,1)
redraw!
else
" call Dret("s:NFH_sxw 0")
return 0
endif
" call Dret("s:NFH_sxw 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_xls: visualize xls files {{{1
fun! s:NFH_xls(xls)
" call Dfunc("s:NFH_xls(xls<".a:xls.">)")
if executable("oocalc")
exe 'silent! !oocalc '.shellescape(a:xls,1)
redraw!
else
" call Dret("s:NFH_xls 0")
return 0
endif
" call Dret("s:NFH_xls 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_ps: handles PostScript files {{{1
fun! s:NFH_ps(ps)
" call Dfunc("s:NFH_ps(ps<".a:ps.">)")
if executable("gs")
" call Decho("exe silent! !gs ".a:ps)
exe "silent! !gs ".shellescape(a:ps,1)
redraw!
elseif executable("ghostscript")
" call Decho("exe silent! !ghostscript ".a:ps)
exe "silent! !ghostscript ".shellescape(a:ps,1)
redraw!
elseif executable("gswin32")
" call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
exe "silent! !gswin32 ".shellescape(a:ps,1)
redraw!
else
" call Dret("s:NFH_ps 0")
return 0
endif
" call Dret("s:NFH_ps 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_eps: handles encapsulated PostScript files {{{1
fun! s:NFH_eps(eps)
" call Dfunc("s:NFH_eps()")
if executable("gs")
exe "silent! !gs ".shellescape(a:eps,1)
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".shellescape(a:eps,1)
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".shellescape(a:eps,1)
redraw!
elseif executable("gswin32")
exe "silent! !gswin32 ".shellescape(a:eps,1)
redraw!
else
" call Dret("s:NFH_eps 0")
return 0
endif
" call Dret("s:NFH_eps 0")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_fig: handles xfig files {{{1
fun! s:NFH_fig(fig)
" call Dfunc("s:NFH_fig()")
if executable("xfig")
exe "silent! !xfig ".a:fig
redraw!
else
" call Dret("s:NFH_fig 0")
return 0
endif
" call Dret("s:NFH_fig 1")
return 1
endfun
" ---------------------------------------------------------------------
" s:NFH_obj: handles tgif's obj files {{{1
fun! s:NFH_obj(obj)
" call Dfunc("s:NFH_obj()")
if has("unix") && executable("tgif")
exe "silent! !tgif ".a:obj
redraw!
else
" call Dret("s:NFH_obj 0")
return 0
endif
" call Dret("s:NFH_obj 1")
return 1
endfun
let &cpo= s:keepcpo
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker
--- NEW FILE netrwPlugin.vim ---
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN SECTION
" Date: Aug 10, 2008
" Maintainer: Charles E Campbell, Jr <NdrOchip at ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
" *as is* and comes with no warranty of any kind, either
" expressed or implied. By using this plugin, you agree that
" in no event will the copyright holder be liable for any damages
" resulting from the use of this software.
"
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
" (James 1:22 RSV)
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
" Load Once: {{{1
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
let g:loaded_netrwPlugin = "v134"
if v:version < 702
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
finish
endif
let s:keepcpo = &cpo
set cpo&vim
" ---------------------------------------------------------------------
" Public Interface: {{{1
" Local Browsing: {{{2
augroup FileExplorer
au!
au BufEnter * silent! call s:LocalBrowse(expand("<amatch>"))
if has("win32") || has("win95") || has("win64") || has("win16")
au BufEnter .* silent! call s:LocalBrowse(expand("<amatch>"))
endif
augroup END
" Network Browsing Reading Writing: {{{2
augroup Network
au!
if has("win32") || has("win95") || has("win64") || has("win16")
au BufReadCmd file://* exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',""))|exe "bwipe ".fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
else
au BufReadCmd file://* exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',""))|exe "bwipe ".fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://localhost/\(.*\)','\1',""))|exe "bwipe ".fnameescape(substitute(expand("<amatch>"),'file://\(\k\+@\)\=','',''))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
endif
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|exe '2Nread '.fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|exe 'Nread '.fnameescape(expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
try
au SourceCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
catch /^Vim\%((\a\+)\)\=:E216/
au SourcePre ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
endtry
augroup END
" Commands: :Nread, :Nwrite, :NetUserPass {{{2
com! -count=1 -nargs=* Nread call netrw#NetrwSavePosn()<bar>call netrw#NetRead(<count>,<f-args>)<bar>call netrw#NetrwRestorePosn()
com! -range=% -nargs=* Nwrite call netrw#NetrwSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetrwRestorePosn()
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
com! -nargs=* Nsource call netrw#NetrwSavePosn()<bar>call netrw#NetSource(<f-args>)<bar>call netrw#NetrwRestorePosn()
" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{2
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<count>,1,4+<bang>0,<q-args>)
com! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>,0,6 ,<q-args>)
com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>)
com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>)
" Commands: NetrwSettings {{{2
com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
com! -bang NetrwClean call netrw#NetrwClean(<bang>0)
" Maps:
if !exists("g:netrw_nogx") && maparg('g','n') == ""
if !hasmapto('<Plug>NetrwBrowseX')
nmap <unique> gx <Plug>NetrwBrowseX
endif
nno <silent> <Plug>NetrwBrowseX :call netrw#NetrwBrowseX(expand("<cWORD>"),0)<cr>
endif
" ---------------------------------------------------------------------
" LocalBrowse: {{{2
fun! s:LocalBrowse(dirname)
" unfortunate interaction -- debugging calls can't be used here;
" the BufEnter event causes triggering when attempts to write to
" the DBG buffer are made.
" echomsg "dirname<".a:dirname.">"
if has("amiga")
" The check against '' is made for the Amiga, where the empty
" string is the current directory and not checking would break
" things such as the help command.
if a:dirname != '' && isdirectory(a:dirname)
silent! call netrw#LocalBrowseCheck(a:dirname)
endif
elseif isdirectory(a:dirname)
" echomsg "dirname<".dirname."> isdir"
silent! call netrw#LocalBrowseCheck(a:dirname)
endif
" not a directory, ignore it
endfun
" ---------------------------------------------------------------------
" NetrwStatusLine: {{{1
fun! NetrwStatusLine()
" let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr("%")." Xline#".w:netrw_explore_line." line#".line(".")
if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr("%") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
let &stl= s:netrw_explore_stl
if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
return ""
else
return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
endif
endfun
" ------------------------------------------------------------------------
" NetUserPass: set username and password for subsequent ftp transfer {{{1
" Usage: :call NetUserPass() -- will prompt for userid and password
" :call NetUserPass("uid") -- will prompt for password
" :call NetUserPass("uid","password") -- sets global userid and password
fun! NetUserPass(...)
" get/set userid
if a:0 == 0
" call Dfunc("NetUserPass(a:0<".a:0.">)")
if !exists("g:netrw_uid") || g:netrw_uid == ""
" via prompt
let g:netrw_uid= input('Enter username: ')
endif
else " from command line
" call Dfunc("NetUserPass(a:1<".a:1.">) {")
let g:netrw_uid= a:1
endif
" get password
if a:0 <= 1 " via prompt
" call Decho("a:0=".a:0." case <=1:")
let g:netrw_passwd= inputsecret("Enter Password: ")
else " from command line
" call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
let g:netrw_passwd=a:2
endif
" call Dret("NetUserPass")
endfun
" ------------------------------------------------------------------------
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim:ts=8 fdm=marker
--- NEW FILE netrwSettings.vim ---
" netrwSettings.vim: makes netrw settings simpler
" Date: Sep 03, 2008
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" Version: 13
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" netrwSettings.vim is provided *as is* and comes with no
" warranty of any kind, either expressed or implied. By using
" this plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
"
" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
" synagogues, preaching the gospel of the kingdom, and healing
" every disease and every sickness among the people.
" Load Once: {{{1
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v13"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
echohl Normal
finish
endif
" ---------------------------------------------------------------------
" NetrwSettings: {{{1
fun! netrwSettings#NetrwSettings()
" this call is here largely just to insure that netrw has been loaded
call netrw#NetrwSavePosn()
if !exists("g:loaded_netrw")
echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
return
endif
above wincmd s
enew
setlocal noswapfile bh=wipe
set ft=vim
file Netrw\ Settings
" these variables have the following default effects when they don't
" exist (ie. have not been set by the user in his/her .vimrc)
if !exists("g:netrw_liststyle")
let g:netrw_liststyle= 0
let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
endif
if !exists("g:netrw_silent")
let g:netrw_silent= 0
endif
if !exists("g:netrw_use_nt_rcp")
let g:netrw_use_nt_rcp= 0
endif
if !exists("g:netrw_ftp")
let g:netrw_ftp= 0
endif
if !exists("g:netrw_ignorenetrc")
let g:netrw_ignorenetrc= 0
endif
put ='+ ---------------------------------------------'
put ='+ NetrwSettings: by Charles E. Campbell, Jr.'
put ='+ Press <F1> with cursor atop any line for help'
put ='+ ---------------------------------------------'
let s:netrw_settings_stop= line(".")
put =''
put ='+ Netrw Protocol Commands'
put = 'let g:netrw_dav_cmd = '.g:netrw_dav_cmd
put = 'let g:netrw_fetch_cmd = '.g:netrw_fetch_cmd
put = 'let g:netrw_ftp_cmd = '.g:netrw_ftp_cmd
put = 'let g:netrw_http_cmd = '.g:netrw_http_cmd
put = 'let g:netrw_rcp_cmd = '.g:netrw_rcp_cmd
put = 'let g:netrw_rsync_cmd = '.g:netrw_rsync_cmd
put = 'let g:netrw_scp_cmd = '.g:netrw_scp_cmd
put = 'let g:netrw_sftp_cmd = '.g:netrw_sftp_cmd
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
let s:netrw_protocol_stop= line(".")
put = ''
put ='+Netrw Transfer Control'
put = 'let g:netrw_cygwin = '.g:netrw_cygwin
put = 'let g:netrw_ftp = '.g:netrw_ftp
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
let s:netrw_xfer_stop= line(".")
put =''
put ='+ Netrw Messages'
put ='let g:netrw_use_errorwindow = '.g:netrw_use_errorwindow
put = ''
put ='+ Netrw Browser Control'
put = 'let g:netrw_alto = '.g:netrw_alto
put = 'let g:netrw_altv = '.g:netrw_altv
put = 'let g:netrw_browse_split = '.g:netrw_browse_split
if exists("g:netrw_browsex_viewer")
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
else
put = 'let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_compress = '.g:netrw_compress
put = 'let g:netrw_cursorline = '.g:netrw_cursorline
let decompressline= line("$")
put ='let g:netrw_decompress...'
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
let fnameescline= line("$")
put = 'let g:netrw_fname_escape...'
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
let globescline= line("$")
put ='let g:netrw_glob_escape...'
put = 'let g:netrw_hide = '.g:netrw_hide
put = 'let g:netrw_keepdir = '.g:netrw_keepdir
put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_local_mkdir = '.g:netrw_local_mkdir
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_local_rmdir = '.g:netrw_local_rmdir
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
put = 'let g:netrw_preview = '.g:netrw_preview
put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
put = 'let g:netrw_retmap = '.g:netrw_retmap
put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_scpport = '.g:netrw_scpport
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
let tmpfileescline= line("$")
put ='let g:netrw_tmpfile_escape...'
put = 'let g:netrw_use_noswf = '.g:netrw_use_noswf
put = 'let g:netrw_xstrlen = '.g:netrw_xstrlen
put = 'let g:netrw_winsize = '.g:netrw_winsize
put =''
put ='+ For help, place cursor on line and press <F1>'
1d
silent %s/^+/"/e
res 99
silent %s/= \([^0-9].*\)$/= '\1'/e
silent %s/= $/= ''/e
1
call setline(decompressline,"let g:netrw_decompress = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
call setline(fnameescline, "let g:netrw_fname_escape = '".escape(g:netrw_fname_escape,"'")."'")
call setline(globescline, "let g:netrw_glob_escape = '".escape(g:netrw_glob_escape,"'")."'")
call setline(tmpfileescline,"let g:netrw_tmpfile_escape = '".escape(g:netrw_tmpfile_escape,"'")."'")
set nomod
nmap <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
let tmpfile= tempname()
exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
endfun
" ---------------------------------------------------------------------
" NetrwSettingHelp: {{{2
fun! NetrwSettingHelp()
" call Dfunc("NetrwSettingHelp()")
let curline = getline(".")
if curline =~ '='
let varhelp = substitute(curline,'^\s*let ','','e')
let varhelp = substitute(varhelp,'\s*=.*$','','e')
" call Decho("trying help ".varhelp)
try
exe "he ".varhelp
catch /^Vim\%((\a\+)\)\=:E149/
echo "***sorry*** no help available for <".varhelp.">"
endtry
elseif line(".") < s:netrw_settings_stop
he netrw-settings
elseif line(".") < s:netrw_protocol_stop
he netrw-externapp
elseif line(".") < s:netrw_xfer_stop
he netrw-variables
else
he netrw-browse-var
endif
" call Dret("NetrwSettingHelp")
endfun
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim:ts=8 fdm=marker
--- NEW FILE tar.vim ---
" tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION
" Date: Aug 08, 2008
" Version: 23 + modifications by Bram
" Maintainer: Charles E Campbell, Jr <NdrOchip at ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
"
" Contains many ideas from Michael Toren's <tar.vim>
"
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" tar.vim and tarPlugin.vim are provided *as is* and comes
" with no warranty of any kind, either expressed or implied.
" By using this plugin, you agree that in no event will the
" copyright holder be liable for any damages resulting from
" the use of this software.
" ---------------------------------------------------------------------
" Load Once: {{{1
let s:keepcpo= &cpo
set cpo&vim
if &cp || exists("g:loaded_tar") || v:version < 700
finish
endif
let g:loaded_tar= "v23b"
"call Decho("loading autoload/tar.vim")
if v:version < 701 || (v:version == 701 && !has("patch299"))
echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299"
endif
" ---------------------------------------------------------------------
" Default Settings: {{{1
if !exists("g:tar_browseoptions")
let g:tar_browseoptions= "Ptf"
endif
if !exists("g:tar_readoptions")
let g:tar_readoptions= "OPxf"
endif
if !exists("g:tar_cmd")
let g:tar_cmd= "tar"
endif
if !exists("g:tar_writeoptions")
let g:tar_writeoptions= "uf"
endif
if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
let g:netrw_cygwin= 1
else
let g:netrw_cygwin= 0
endif
else
let g:netrw_cygwin= 0
endif
endif
" set up shell quoting character
if !exists("g:tar_shq")
if exists("&shq") && &shq != ""
let g:tar_shq= &shq
elseif has("win32") || has("win95") || has("win64") || has("win16")
if exists("g:netrw_cygwin") && g:netrw_cygwin
let g:tar_shq= "'"
else
let g:tar_shq= '"'
endif
else
let g:tar_shq= "'"
endif
" call Decho("g:tar_shq<".g:tar_shq.">")
endif
" ----------------
" Functions: {{{1
" ----------------
" ---------------------------------------------------------------------
" tar#Browse: {{{2
fun! tar#Browse(tarfile)
" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
let repkeep= &report
set report=10
" sanity checks
if !executable(g:tar_cmd)
redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Browse")
return
endif
if !filereadable(a:tarfile)
" call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
if a:tarfile !~# '^\a\+://'
" if its an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
let &report= repkeep
" call Dret("tar#Browse : file<".a:tarfile."> not readable")
return
endif
if &ma != 1
set ma
endif
let w:tarfile= a:tarfile
setlocal noswapfile
setlocal buftype=nofile
setlocal bufhidden=hide
setlocal nobuflisted
setlocal nowrap
set ft=tar
" give header
" call Decho("printing header")
let lastline= line("$")
call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
call setline(lastline+3,'" Select a file with cursor and press ENTER')
$put =''
0d
$
let tarfile= a:tarfile
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
endif
let curlast= line("$")
if tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("1: exe silent r! gzip -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! gzip -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.lrp'
" call Decho("2: exe silent r! cat -- ".s:Escape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! cat -- ".s:Escape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.bz2$'
" call Decho("3: exe silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
else
if tarfile =~ '^\s*-'
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile,1))
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile,1)
endif
if v:shell_error != 0
redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return
endif
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
silent %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".fnameescape(a:tarfile)
let &ei= eikeep
1d
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return
endif
setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
let &report= repkeep
" call Dret("tar#Browse : w:tarfile<".w:tarfile.">")
endfun
" ---------------------------------------------------------------------
" TarBrowseSelect: {{{2
fun! s:TarBrowseSelect()
" call Dfunc("TarBrowseSelect() w:tarfile<".w:tarfile."> curfile<".expand("%").">")
let repkeep= &report
set report=10
let fname= getline(".")
" call Decho("fname<".fname.">")
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
redraw!
echohl WarningMsg | echo '***error*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"; See :help tar-options'
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
return
endif
" sanity check
if fname =~ '^"'
let &report= repkeep
" call Dret("TarBrowseSelect")
return
endif
" about to make a new window, need to use w:tarfile
let tarfile= w:tarfile
let curfile= expand("%")
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
endif
new
if !exists("g:tar_nomax") || g:tar_nomax == 0
wincmd _
endif
let s:tblfile_{winnr()}= curfile
call tar#Read("tarfile:".tarfile.'::'.fname,1)
filetype detect
let &report= repkeep
" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
endfun
" ---------------------------------------------------------------------
" tar#Read: {{{2
fun! tar#Read(fname,mode)
" call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
let repkeep= &report
set report=10
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
endif
" call Decho("tarfile<".tarfile.">")
" call Decho("fname<".fname.">")
if fname =~ '\.gz$' && executable("zcat")
let decmp= "|zcat"
let doro = 1
elseif fname =~ '\.bz2$' && executable("bzcat")
let decmp= "|bzcat"
let doro = 1
else
let decmp=""
let doro = 0
if fname =~ '\.gz$\|\.bz2$\|\.Z$\|\.zip$'
setlocal bin
endif
endif
if exists("g:tar_secure")
let tar_secure= " -- "
else
let tar_secure= " "
endif
if tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("5: exe silent r! gzip -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.s:Escape(fname,1))
exe "silent r! gzip -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp
elseif tarfile =~# '\.lrp$'
" call Decho("6: exe silent r! cat ".s:Escape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp)
exe "silent r! cat -- ".s:Escape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp
elseif tarfile =~# '\.bz2$'
" call Decho("7: exe silent r! bzip2 -d -c ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp)
exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp
else
if tarfile =~ '^\s*-'
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions." "s:Escape(tarfile,1).tar_secure..s:Escape(fname,1).decmp)
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." ".s:Escape(tarfile,1).tar_secure.s:Escape(fname,1).decmp
endif
if doro
" because the reverse process of compressing changed files back into the tarball is not currently supported
setlocal ro
endif
let w:tarfile= a:fname
exe "file tarfile::".fnameescape(fname)
" cleanup
0d
set nomod
let &report= repkeep
" call Dret("tar#Read : w:tarfile<".w:tarfile.">")
endfun
" ---------------------------------------------------------------------
" tar#Write: {{{2
fun! tar#Write(fname)
" call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
let repkeep= &report
set report=10
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
redraw!
echohl WarningMsg | echo '***error*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"; See :help tar-options'
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
return
endif
" sanity checks
if !executable(g:tar_cmd)
redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
endif
if !exists("*mkdir")
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
endif
let curdir= getcwd()
let tmpdir= tempname()
" call Decho("orig tempname<".tmpdir.">")
if tmpdir =~ '\.'
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
endif
" call Decho("tmpdir<".tmpdir.">")
call mkdir(tmpdir,"p")
" attempt to change to the indicated directory
try
exe "cd ".fnameescape(tmpdir)
catch /^Vim\%((\a\+)\)\=:E344/
redraw!
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
endtry
" call Decho("current directory now: ".getcwd())
" place temporary files under .../_ZIPVIM_/
if isdirectory("_ZIPVIM_")
call s:Rmdir("_ZIPVIM_")
endif
call mkdir("_ZIPVIM_")
cd _ZIPVIM_
" call Decho("current directory now: ".getcwd())
let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(w:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
" handle compressed archives
if tarfile =~# '\.gz'
call system("gzip -d -- ".s:Escape(tarfile,0))
let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip -- ".s:Escape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.tgz'
call system("gzip -d -- ".s:Escape(tarfile,0))
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip -- ".s:Escape(tarfile,0)
let tgz = 1
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.bz2'
call system("bzip2 -d -- ".s:Escape(tarfile,0))
let tarfile = substitute(tarfile,'\.bz2','','e')
let compress= "bzip2 -- ".s:Escape(tarfile,0)
" call Decho("compress<".compress.">")
endif
" call Decho("tarfile<".tarfile.">")
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else
" call Decho("tarfile<".tarfile."> fname<".fname.">")
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath")
let dirpath = substitute(system("cygpath ".s:Escape(dirpath, 0)),'\n','','e')
endif
call mkdir(dirpath,"p")
endif
if tarfile !~ '/'
let tarfile= curdir.'/'.tarfile
endif
if tarfile =~ '^\s*-'
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("tarfile<".tarfile."> fname<".fname.">")
if exists("g:tar_secure")
let tar_secure= " -- "
else
let tar_secure= " "
endif
exe "w! ".fnameescape(fname)
if executable("cygpath")
let tarfile = substitute(system("cygpath ".s:Escape(tarfile,0)),'\n','','e')
endif
" delete old file from tarfile
" call Decho("system(".g:tar_cmd." --delete -f ".s:Escape(tarfile,0)." -- ".s:Escape(fname,0).")")
call system(g:tar_cmd." --delete -f ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else
" update tarfile with new file
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
call system(g:tar_cmd." -".g:tar_writeoptions." ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
elseif exists("compress")
" call Decho("call system(".compress.")")
call system(compress)
if exists("tgz")
" call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")")
call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e'))
endif
endif
endif
" support writing tarfiles across a network
if s:tblfile_{winnr()} =~ '^\a\+://'
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
let tblfile= s:tblfile_{winnr()}
1split|enew
let binkeep= &binary
let eikeep = &ei
set binary ei=all
exe "e! ".fnameescape(tarfile)
call netrw#NetWrite(tblfile)
let &ei = eikeep
let &binary = binkeep
q!
unlet s:tblfile_{winnr()}
endif
endif
" cleanup and restore current directory
cd ..
call s:Rmdir("_ZIPVIM_")
exe "cd ".fnameescape(curdir)
setlocal nomod
let &report= repkeep
" call Dret("tar#Write")
endfun
" ---------------------------------------------------------------------
" Rmdir: {{{2
fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)")
if has("unix")
call system("/bin/rm -rf -- ".s:Escape(a:fname,0))
elseif has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~? "sh$"
call system("/bin/rm -rf -- ".s:Escape(a:fname,0))
else
call system("del /S ".s:Escape(a:fname,0))
endif
endif
" call Dret("Rmdir")
endfun
" ---------------------------------------------------------------------
" s:Escape: {{{2
fun s:Escape(name,isfilt)
" shellescape() was added by patch 7.0.111
if exists("*shellescape")
if a:isfilt
let qnameq= shellescape(a:name,1)
else
let qnameq= shellescape(a:name)
endif
else
let qnameq= g:tar_shq . a:name . g:tar_shq
endif
return qnameq
endfun
" ---------------------------------------------------------------------
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim:ts=8 fdm=marker
vim-7.1-lib64.patch:
--- NEW FILE vim-7.1-lib64.patch ---
diff -up vim71/src/auto/configure.lib64 vim71/src/auto/configure
--- vim71/src/auto/configure.lib64 2008-07-23 12:36:17.000000000 +0200
+++ vim71/src/auto/configure 2008-07-23 12:37:04.000000000 +0200
@@ -4291,7 +4291,7 @@ else
vi_cv_path_python_conf=
for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
- for subdir in lib share; do
+ for subdir in lib64 lib share; do
d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
if test -d "$d" && test -f "$d/config.c"; then
vi_cv_path_python_conf="$d"
diff -up vim71/src/configure.in.lib64 vim71/src/configure.in
--- vim71/src/configure.in.lib64 2008-07-23 12:36:17.000000000 +0200
+++ vim71/src/configure.in 2008-07-23 12:36:17.000000000 +0200
@@ -634,7 +634,7 @@ if test "$enable_pythoninterp" = "yes";
[
vi_cv_path_python_conf=
for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
- for subdir in lib share; do
+ for subdir in lib64 lib share; do
d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
if test -d "$d" && test -f "$d/config.c"; then
vi_cv_path_python_conf="$d"
vim-7.2-fstabsyntax.patch:
--- NEW FILE vim-7.2-fstabsyntax.patch ---
diff -up vim72/runtime/syntax/fstab.vim.fstabsyntax vim72/runtime/syntax/fstab.vim
--- vim72/runtime/syntax/fstab.vim.fstabsyntax 2008-01-16 21:52:16.000000000 +0100
+++ vim72/runtime/syntax/fstab.vim 2008-08-14 17:02:08.000000000 +0200
@@ -46,7 +46,7 @@ syn keyword fsMountPointKeyword containe
" Type
syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
syn match fsTypeUnknown /\s\+\zs\w\+/ contained
-syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
+syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs binfmt_misc cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs rpc_pipefs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
" Options
" -------
@@ -58,7 +58,7 @@ syn match fsOptionsString /[a-zA-Z0-9_-]
syn keyword fsOptionsYesNo yes no
syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
syn keyword fsOptionsSize 512 1024 2048
-syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand nosuid nosymfollow nouser owner rbind rdonly remount ro rq rw suid suiddir supermount sw sync union update user users xx
+syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop managed mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand nosuid nosymfollow nouser owner pamconsole rbind rdonly remount ro rq rw suid suiddir supermount sw sync union update user[s] xx
syn match fsOptionsGeneral /_netdev/
" Options: adfs
--- NEW FILE zip.vim ---
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: Jul 30, 2008
" Version: 22
" Maintainer: Charles E Campbell, Jr <NdrOchip at ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" zip.vim and zipPlugin.vim are provided *as is* and comes with
" no warranty of any kind, either expressed or implied. By using
" this plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
" ---------------------------------------------------------------------
" Load Once: {{{1
let s:keepcpo= &cpo
set cpo&vim
if &cp || exists("g:loaded_zip") || v:version < 700
finish
endif
let g:loaded_zip = "v22"
let s:zipfile_escape = ' ?&;\'
let s:ERROR = 2
let s:WARNING = 1
let s:NOTE = 0
" ---------------------------------------------------------------------
" Global Values: {{{1
if !exists("g:zip_shq")
if &shq != ""
let g:zip_shq= &shq
elseif has("unix")
let g:zip_shq= "'"
else
let g:zip_shq= '"'
endif
endif
if !exists("g:zip_zipcmd")
let g:zip_zipcmd= "zip"
endif
if !exists("g:zip_unzipcmd")
let g:zip_unzipcmd= "unzip"
endif
" ----------------
" Functions: {{{1
" ----------------
" ---------------------------------------------------------------------
" zip#Browse: {{{2
fun! zip#Browse(zipfile)
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
let repkeep= &report
set report=10
" sanity checks
if !exists("*fnameescape")
if &verbose > 1
echoerr "the zip plugin is not available (your vim doens't support fnameescape())"
endif
return
endif
if !executable(g:zip_unzipcmd)
redraw!
echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Browse")
return
endif
if !filereadable(a:zipfile)
if a:zipfile !~# '^\a\+://'
" if its an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
let &report= repkeep
" call Dret("zip#Browse : file<".a:zipfile."> not readable")
return
endif
" call Decho("passed sanity checks")
if &ma != 1
set ma
endif
let b:zipfile= a:zipfile
setlocal noswapfile
setlocal buftype=nofile
setlocal bufhidden=hide
setlocal nobuflisted
setlocal nowrap
set ft=tar
" give header
let lastline= line("$")
call setline(lastline+1,'" zip.vim version '.g:loaded_zip)
call setline(lastline+2,'" Browsing zipfile '.a:zipfile)
call setline(lastline+3,'" Select a file with cursor and press ENTER')
$put =''
0d
$
" call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1))
exe "silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1)
if v:shell_error != 0
redraw!
echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
silent %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".fnameescape(a:zipfile)
let &ei= eikeep
1d
" call Dret("zip#Browse")
return
endif
" call Decho("line 6: ".getline(6))
let namecol= stridx(getline(6),'Name') + 1
" call Decho("namecol=".namecol)
4,$g/^\s*----/d
4,$g/^\s*\a/d
$d
if namecol > 0
exe 'silent 4,$s/^.*\%'.namecol.'c//'
endif
setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
let &report= repkeep
" call Dret("zip#Browse")
endfun
" ---------------------------------------------------------------------
" ZipBrowseSelect: {{{2
fun! s:ZipBrowseSelect()
" call Dfunc("ZipBrowseSelect() zipfile<".b:zipfile."> curfile<".expand("%").">")
let repkeep= &report
set report=10
let fname= getline(".")
" sanity check
if fname =~ '^"'
let &report= repkeep
" call Dret("ZipBrowseSelect")
return
endif
if fname =~ '/$'
redraw!
echohl Error | echo "***error*** (zip#Browse) Please specify a file, not a directory" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("ZipBrowseSelect")
return
endif
" call Decho("fname<".fname.">")
" get zipfile to the new-window
let zipfile = b:zipfile
let curfile= expand("%")
" call Decho("zipfile<".zipfile.">")
" call Decho("curfile<".curfile.">")
new
if !exists("g:zip_nomax") || g:zip_nomax == 0
wincmd _
endif
let s:zipfile_{winnr()}= curfile
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
exe "e ".fnameescape("zipfile:".zipfile.'::'.fname)
filetype detect
let &report= repkeep
" call Dret("ZipBrowseSelect : s:zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
endfun
" ---------------------------------------------------------------------
" zip#Read: {{{2
fun! zip#Read(fname,mode)
" call Dfunc("zip#Read(fname<".a:fname.">,mode=".a:mode.")")
let repkeep= &report
set report=10
if has("unix")
let zipfile = substitute(a:fname,'zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'zipfile:.\{-}::\([^\\].*\)$','\1','')
else
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
let fname = substitute(fname, '[', '[[]', 'g')
endif
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")
" call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1))
exe "silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)
" cleanup
0d
set nomod
let &report= repkeep
" call Dret("zip#Read")
endfun
" ---------------------------------------------------------------------
" zip#Write: {{{2
fun! zip#Write(fname)
" call Dfunc("zip#Write(fname<".a:fname.">) zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
let repkeep= &report
set report=10
" sanity checks
if !executable(g:zip_zipcmd)
redraw!
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the zip pgm" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Write")
return
endif
if !exists("*mkdir")
redraw!
echohl Error | echo "***error*** (zip#Write) sorry, mkdir() doesn't work on your system" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Write")
return
endif
let curdir= getcwd()
let tmpdir= tempname()
" call Decho("orig tempname<".tmpdir.">")
if tmpdir =~ '\.'
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
endif
" call Decho("tmpdir<".tmpdir.">")
call mkdir(tmpdir,"p")
" attempt to change to the indicated directory
if s:ChgDir(tmpdir,s:ERROR,"(zip#Write) cannot cd to temporary directory")
let &report= repkeep
" call Dret("zip#Write")
return
endif
" call Decho("current directory now: ".getcwd())
" place temporary files under .../_ZIPVIM_/
if isdirectory("_ZIPVIM_")
call s:Rmdir("_ZIPVIM_")
endif
call mkdir("_ZIPVIM_")
cd _ZIPVIM_
" call Decho("current directory now: ".getcwd())
if has("unix")
let zipfile = substitute(a:fname,'zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'zipfile:.\{-}::\([^\\].*\)$','\1','')
else
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
endif
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath")
let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
endif
" call Decho("mkdir(dirpath<".dirpath.">,p)")
call mkdir(dirpath,"p")
endif
if zipfile !~ '/'
let zipfile= curdir.'/'.zipfile
endif
" call Decho("zipfile<".zipfile."> fname<".fname.">")
exe "w! ".fnameescape(fname)
if executable("cygpath")
let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
endif
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
let fname = substitute(fname, '[', '[[]', 'g')
endif
" call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
elseif s:zipfile_{winnr()} =~ '^\a\+://'
" support writing zipfiles across a network
let netzipfile= s:zipfile_{winnr()}
" call Decho("handle writing <".zipfile."> across network as <".netzipfile.">")
1split|enew
let binkeep= &binary
let eikeep = &ei
set binary ei=all
exe "e! ".fnameescape(zipfile)
call netrw#NetWrite(netzipfile)
let &ei = eikeep
let &binary = binkeep
q!
unlet s:zipfile_{winnr()}
endif
" cleanup and restore current directory
cd ..
call s:Rmdir("_ZIPVIM_")
call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!")
call s:Rmdir(tmpdir)
setlocal nomod
let &report= repkeep
" call Dret("zip#Write")
endfun
" ---------------------------------------------------------------------
" s:Escape: {{{2
fun! s:Escape(fname,isfilt)
" call Dfunc("QuoteFileDir(fname<".a:fname."> isfilt=".a:isfilt.")")
if exists("*shellescape")
if a:isfilt
let qnameq= shellescape(a:fname,1)
else
let qnameq= shellescape(a:fname)
endif
else
let qnameq= g:zip_shq.escape(a:fname,g:zip_shq).g:zip_shq
endif
" call Dret("QuoteFileDir <".qnameq.">")
return qnameq
endfun
" ---------------------------------------------------------------------
" ChgDir: {{{2
fun! s:ChgDir(newdir,errlvl,errmsg)
" call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl." errmsg<".a:errmsg.">)")
try
exe "cd ".fnameescape(a:newdir)
catch /^Vim\%((\a\+)\)\=:E344/
redraw!
if a:errlvl == s:NOTE
echo "***note*** ".a:errmsg
elseif a:errlvl == s:WARNING
echohl WarningMsg | echo "***warning*** ".a:errmsg | echohl NONE
elseif a:errlvl == s:ERROR
echohl Error | echo "***error*** ".a:errmsg | echohl NONE
endif
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("ChgDir 1")
return 1
endtry
" call Dret("ChgDir 0")
return 0
endfun
" ---------------------------------------------------------------------
" s:Rmdir: {{{2
fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)")
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
call system("rmdir /S/Q ".s:Escape(a:fname,0))
else
call system("/bin/rm -rf ".s:Escape(a:fname,0))
endif
" call Dret("Rmdir")
endfun
" ------------------------------------------------------------------------
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim:ts=8 fdm=marker
Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/vim/F-9/.cvsignore,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- .cvsignore 5 Jun 2007 10:37:55 -0000 1.22
+++ .cvsignore 1 Dec 2008 15:06:10 -0000 1.23
@@ -1,3 +1,3 @@
-vim-7.1-extra.tar.gz
-vim-7.1-lang.tar.gz
-vim-7.1.tar.bz2
+vim-7.2-extra.tar.gz
+vim-7.2-lang.tar.gz
+vim-7.2.tar.bz2
Index: README.patches
===================================================================
RCS file: /cvs/extras/rpms/vim/F-9/README.patches,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -r1.104 -r1.105
--- README.patches 11 Apr 2008 09:17:31 -0000 1.104
+++ README.patches 1 Dec 2008 15:06:22 -0000 1.105
@@ -1,4 +1,4 @@
-Patches for Vim - Vi IMproved 7.1
+Patches for Vim - Vi IMproved 7.2
The files in this directory contain source code changes to fix
problems in released versions of Vim. Each file also contains an
@@ -14,314 +14,74 @@
and "runtime" directories are located.
Depending on the version of "patch" that you use, you may have add
an argument to make it patch the right file:
- patch -p < 7.1.001
- patch -p0 < 7.1.001
+ patch -p < 7.2.001
+ patch -p0 < 7.2.001
After applying a patch, you need to compile Vim. There are no
patches for binaries.
Checksums for the patch files can be found in the file MD5.
-Collection of patches for Vim 7.1:
- SIZE NAME INCLUDES
- 91424 7.1.001-100.gz patches 7.1.001 to 7.1.100, gzip'ed
- 75402 7.1.101-200.gz patches 7.1.101 to 7.1.200, gzip'ed
-
-
-Individual patches for Vim 7.1:
+Individual patches for Vim 7.2:
SIZE NAME FIXES
- 2404 7.1.001 can't build with Gnome GUI
- 2011 7.1.002 Oracle Pro*C/C++ files are not detected
- 1529 7.1.003 (extra) Win32: menu entries end up in message history
- 2481 7.1.004 crash when editing a directory
- 3841 7.1.005 "cit" used on <foo></foo> deletes <foo>
- 2941 7.1.006 when reading from stdin 'modified' can't be reset in autocmd
- 6458 7.1.007 (extra) Mac: context menu does not work, scrollbars not dimmed
- 2631 7.1.008 getfsize() returns an invalid number for very big files
- 1881 7.1.009 diff mode: tab to spaces change not highlighted correctly
- 2796 7.1.010 Gnome: tab pages are not included in the saved session
- 1934 7.1.011 buffer overflow when $VIMRUNTIME is very long
- 1904 7.1.012 ":let &tw = 'asdf'" does not give an error message
- 2139 7.1.013 ":syn include" only loads the first file
- 1479 7.1.014 crash in C-indenting
- 3743 7.1.015 MzScheme interface doesn't build on Mac; init problem
- 2368 7.1.016 (after 7.1.012) error message when using ":cwindow"
- 6729 7.1.017 ":confirm w" does not give a prompt when file is read-only
- 1771 7.1.018 "p" at end of line doesn't work right when 've' is set
- 1650 7.1.019 ":python" doesn't mention the command is not implemented
- 3229 7.1.020 reading uninitialized memory when using a dialog
- 2875 7.1.021 (after 7.1.015) MzScheme interface doesn't build on Win32
- 1842 7.1.022 when setting 'keymap' twice b:keymap_name variable isn't set
- 1718 7.1.023 "dw" in a line with one character deletes the line
- 1335 7.1.024 using a pointer that may have become invalid
- 2292 7.1.025 search('pat', 'bc) doesn't find word under cursor at BOL
- 1710 7.1.026 "[p" doesn't work in Visual mode
- 3345 7.1.027 on Sun OS reading from a process substitutions doesn't work
- 2239 7.1.028 ":sort" does nothing special with empty search pattern
- 2692 7.1.029 (after 7.1.019) can't compile when all interfaces are used
- 2364 7.1.030 vimtutor shell script checks for "vim6" but not for "vim7"
- 6533 7.1.031 virtcol([123, '$']) doesn't work
- 3006 7.1.032 possible crash when doing completion on the command line
- 1530 7.1.033 buffer marked modified after ":bdel" and ":next"
- 2956 7.1.034 Win64: compiler warnings for typecast, optimizer problem
- 1797 7.1.035 after ":s/./&/#" all listed lines have a line number
- 12171 7.1.036 add "none" to completion of ":echohl" and ":match"
- 1817 7.1.037 using strcpy() for an overlapping string
- 5704 7.1.038 'preseveindent' doesn't always work when 'et' is set
- 1750 7.1.039 weird help-tags tag in docs file may make cause a crash
- 53412 7.1.040 ":match" only supports three matches
- 4614 7.1.041 (extra, after 7.1.040) update test makefiles for new test
- 2366 7.1.042 (after 7.1.040) internal error when using matchadd()
- 2820 7.1.043 in Ex mode using CTRL-D twice may cause a crash
- 1632 7.1.044 in Insert mode 0 CTRL-T deletes all indent
- 3101 7.1.045 double screen redraw in some situations
- 1637 7.1.046 ":s/.*/&/" deletes composing characters
- 1552 7.1.047 wrong argument for vim_regcomp()
- 5010 7.1.048 paren highlighting is not updated after scrolling
- 1722 7.1.049 can't compile with GTK2 when using hangul input feature
- 4800 7.1.050 possible crash in C++ indenting
- 2295 7.1.051 accessing uninitialized memory when finding spell suggestions
- 2435 7.1.052 when creating a new match not all fields are initialized
- 1473 7.1.053 reading uninitialized memory when updating command line
- 4451 7.1.054 accessing uninitialized memory when displaying the fold column
- 5414 7.1.055 using strcpy() with arguments that overlap
- 3151 7.1.056 scrolling back at more prompt doesn't work properly
- 2514 7.1.057 CursorHold causes problems for Normal and Visual mode commands
- 10612 7.1.058 completion menu doesn't work properly when 'righleft' is set
- 3350 7.1.059 in Ex mode "g/^/vi" and pressing CTRL-C: Vim hangs and beeps
- 5066 7.1.060 splitting quickfix window messes up window layout
- 6320 7.1.061 with latin1 'ignorecase' doesn't work for umlauts
- 1550 7.1.062 (after 7.0.038) C comment indent can be wrong
- 1391 7.1.063 compiler warning for uninitialized variable
- 1405 7.1.064 on interix some files appear not to exist
- 2983 7.1.065 Win32: MingW Compilation problem for newer version of w32api
- 4553 7.1.066 when 'bomb' is changed the file should be considered modified
- 7701 7.1.067 'infercase' doesn't work for thesaurus completion
- 6709 7.1.068 'equalalways' equalizes windows too often
- 2757 7.1.069 GTK GUI: confirm() dialog has a default button when not wanted
- 1560 7.1.070 (extra) Win32 GUI: same confirm() default button problem
- 5534 7.1.071 (after 7.1.040) add a basic test for regexp patterns
- 5705 7.1.072 (extra, after 7.1.041 and 7.1.071) extra part of 7.1.071
- 3595 7.1.073 (after 7.1.062) crash when 'preserveindent' is set
- 5259 7.1.074 crash when using string() on a recursively nested List
- 1686 7.1.075 ":let v:statusmsg" reads memory already freed
- 2376 7.1.076 a couple more strcpy() with overlapping arguments
- 1551 7.1.077 "can_spell" is used without initializing it
- 2678 7.1.078 dropping file name on gvim containing CSI byte doesn't work
- 2922 7.1.079 "@" character in 'isfname' doesn't pick up umlauts for latin1
- 2960 7.1.080 (extra) Compiler warnings for gvimex.cpp
- 3253 7.1.081 completion doesn't work after ":!cat <foo"
- 3464 7.1.082 matchparen plugin doesn't update after window split
- 3448 7.1.083 (after 7.1.081) completion doesn't work with wildcards
- 1671 7.1.084 netbeans doesn't get fileOpened events when using -nb twice
- 2496 7.1.085 after ":split fold.c" folds in one window disappear
- 3561 7.1.086 crash when using specific Python syntax highlighting
- 4165 7.1.087 cscope: reading past command end; writing past buffer end
- 2276 7.1.088 (extra) window position wrong when using ":winpos"
- 13841 7.1.089 when listing variables text of command is not cleared
- 2372 7.1.090 compiler warning on Mac OS X 10.5 for sigaltstack()
- 10488 7.1.091 (extra) Win32: add --windowid argument
- 2901 7.1.092 (extra, after 7.1.088) wrong args for MoveWindowStructure()
- 15955 7.1.093 read past end of screen line when checking for double width
- 1901 7.1.094 using wrong buffer to check if syntax HL is present
- 5809 7.1.095 autocmmand for focus events may cause problems
- 2287 7.1.096 reading past end of a string when resizing Vim
- 1620 7.1.097 "setlocal stl=%!expr" doesn't work
- 1780 7.1.098 ":call s:var()" doesn't work if "s:var" is a Funcref
- 4552 7.1.099 ":mkvimrc" doesn't work properly when 'paste' or 'keymap' set
- 14551 7.1.100 Win32: Executing cscope doesn't always work properly
- 1614 7.1.101 Ruby: The Buffer.line= method does not work
- 3276 7.1.102 Perl interface doesn't compile with new version of Perl
- 1976 7.1.103 "dw" past end of last line deletes a character
- 14346 7.1.104 (after 7.1.095) when 'lazyredraw' set redraw may be postponed
- 2426 7.1.105 internal error when using "0 ? {'a': 1} : {}"
- 1580 7.1.106 ":messages" doesn't quit listing on ":"
- 4081 7.1.107 Visual block mode "s" that auto-indents fails in other lines
- 2633 7.1.108 (after 7.1.100) Win32: compilation problems in Cscope code
- 2147 7.1.109 GTK GUI: click on arrow left of tab
- 2234 7.1.110 (after 7.1.102) Win32: Still compilation problems with Perl
- 2946 7.1.111 after ":vimgrep /pat/j *" folds can be wrong
- 1766 7.1.112 using input() with a wrong argument may crash Vim
- 2765 7.1.113 map() on an empty list causes memory to be freed twice
- 1386 7.1.114 memory leak in getmatches()
- 1472 7.1.115 (after 7.1.105) compiler warning for uninitialized variable
- 3137 7.1.116 can't display characters above 0x10000
- 1414 7.1.117 can't check wether Vim was compiled with Gnome
- 1805 7.1.118 (after 7.1.107) compiler warning for Visual C compiler
- 1761 7.1.119 crash after setting 'cmdheight' to huge value
- 17416 7.1.120 can't use valgrind with "make test" to test for memory leaks
- 2350 7.1.121 ":cd %:h" fails when editing file in current directory
- 3732 7.1.122 Mac: building with Aap doesn't work properly
- 8051 7.1.123 Win32: ":edit foo ~ foo" expands "~"
- 2599 7.1.124 (extra) Mac: may get empty buffer if dropping file on Vim.app
- 12060 7.1.125 the TermResponse autocommand event is not always triggered
- 13372 7.1.126 (extra) ":vimgrep */*" doesn't work if autocmd changes dir
- 12461 7.1.126ne replacement for 7.1.126 without the (extra)
- 2319 7.1.127 memory leak when doing completing
- 2079 7.1.128 (extra) build problem with Cygwin
- 1740 7.1.129 (extra) Win32: Can't get long user name
- 9494 7.1.130 crash with some combination of undo and redo
- 1535 7.1.131 ":mksession" always adds ":setlocal autoread"
- 1781 7.1.132 getpos("'>") may return < 0 for a Linewise selection
- 1515 7.1.133 shorten_fname1() linked when it's not needed
- 10379 7.1.134 (extra) Win32: Can't build with VC8
- 3337 7.1.135 Win32: ":e c:/tmp/foo" and ":e c:/tmp//foo" create two buffers
- 1522 7.1.136 memory leak when using Ruby syntax highlighting
- 1553 7.1.137 build failure when using EXITFREE
- 1836 7.1.138 Perl: Msg() doesn't stop when "q" is typed at the more prompt
- 1557 7.1.139 fold truncated when ending Insert mode with CTRL-C
- 1664 7.1.140 v:count can't be used in an expression mapping
- 2806 7.1.141 GTK: can't use negative offset with -geom argument
- 2161 7.1.142 ":redir @A>" doesn't work
- 1723 7.1.143 uninitialized memory read when diffing three files
- 1250 7.1.144 after ":diffup" cursor can be in the wrong position
- 6160 7.1.145 stay in Insert completion mode depending on the char typed
- 2838 7.1.146 VMS: writing fails for rare record organisation
- 2079 7.1.147 (after 7.1.127) freeing memory twice completing user name
- 2557 7.1.148 QNX and some other systems require testing for sys/types.h
- 4823 7.1.149 completion menu messed up when using the scroll bar
- 1759 7.1.150 Visual mode "p" doesn't work when 'clipboard' has "unnamed"
- 2108 7.1.151 lalloc(0) error for line completion with 'ic' and 'inf' set
- 3183 7.1.152 display problem when 'hls' and 'cursorcolumn' are set
- 4610 7.1.153 compiler warnings on SGI
- 1547 7.1.154 (after 7.1.152) compiler warning for signed/unsigned compare
- 1594 7.1.155 crash when 'undolevels' is 0 and repeating "udd"
- 4174 7.1.156 overlapping arguments for strcpy() during cmdline completion
- 1541 7.1.157 :" in Ex mode at end of file results in an error message
- 4629 7.1.158 (extra) Win32: with utf-8 and cp1250 Alt-y is the wrong char
- 1646 7.1.159 overlapping arguments for a strcpy()
- 1661 7.1.160 getting/losing focus may cause hit-enter prompt to be redrawn
- 4347 7.1.161 compilation errors with tiny features and EXITFREE
- 4691 7.1.162 crash when using a modifier before "while" or "for"
- 2367 7.1.163 warning for the unknown option 'bufsecret'
- 1576 7.1.164 reading past end of regexp pattern
- 5538 7.1.165 crash related to getting X window ID
- 2134 7.1.166 memory leak when using "gp" in Visual mode
- 2528 7.1.167 xxd crashes when using "xxd -b -c 110"
- 2989 7.1.168 (extra) Win32 GUI: when no focus click doesn't position cursor
- 1926 7.1.169 using uninitialized memory when system() fails
- 1722 7.1.170 overlapping arguments to strcpy()
- 2324 7.1.171 reading one byte before allocated memory.
- 1536 7.1.172 if 'buftype' is "acwrite" Vim still does overwrite check
- 1928 7.1.173 accessing freed memory when using "\%^" pattern
- 2197 7.1.174 writing NUL past end of a buffer
- 4722 7.1.175 <BS> doesn't work with some combination of option settings
- 2943 7.1.176 compiling with Aap fails if "compiledby" contains '<' or '>'
- 5450 7.1.177 freeing memory twice when in debug mode while reading a script
- 1567 7.1.178 "%" doesn't work on "/* comment *//* comment */"
- 6581 7.1.179 configure doesn't find TCL 8.5
- 7099 7.1.180 regexp patterns are not sufficiently tested
- 1878 7.1.181 accessing uninitialized memory in Farsi mode with ":s"
- 5457 7.1.182 with tab pages and an argument list session file may be wrong
- 2489 7.1.183 Internal error for ":echo matchstr('a', 'a\%[\&]')"
- 2132 7.1.184 crash when deleting backwards over a line break in Insert mode
- 3744 7.1.185 "gR" and then BS doesn't work properly with multi-byte chars
- 3294 7.1.186 "expand('<afile>')" returns a bogus value after ":cd dir"
- 2341 7.1.187 Win32 GUI: custom completion using system() doesn't work
- 1688 7.1.188 "W10" message could be displayed in the second column
- 1950 7.1.189 (after 7.1.104) need to call plain_vgetc() in ask_yesno()
- 1685 7.1.190 cursor after end-of-line: "iA sentence.<Esc>)"
- 2007 7.1.191 Win32 GUI: when not in focus click in scrollbar doesn't work
- 2605 7.1.192 CTRL-C doesn't stop duplicating text for "s" in Visual block
- 2962 7.1.193 some of the Vim 5.x digraphs could be supported
- 1650 7.1.194 Unix: ":echo glob('~/{}')" results in "/home/user//"
- 2273 7.1.195 '0 mark doesn't work for "~/foo ~ foo"
- 2642 7.1.196 (extra) Win32 GUI: "\n" in a tooltip doesn't cause line break
- 2308 7.1.197 Mac: "make install" doesn't work when $prefix is set
- 1460 7.1.198 hang when using ":s/\n//gn"
- 3572 7.1.199 can't do command line completion for a file name extension
- 2310 7.1.200 (after 7.1.177 and 7.1.182) compiler warnings
- 2705 7.1.201 when reading stdin 'fenc' and 'ff' are not set
- 2383 7.1.202 incomplete utf-8 byte sequence is not checked for validity
- 2261 7.1.203 if 'virtualedit' is "onemore" then ":normal 99|" is not right
- 2891 7.1.204 (extra) Win32: 'balloonexpr' tooltip disappears after 4 sec
- 5481 7.1.205 can't get the operator in an ":omap"
- 1690 7.1.206 compiler warnings when using MODIFIED_BY
- 7708 7.1.207 netbeans: "remove" cannot delete one line
- 2051 7.1.208 on Alpha get an unaligned access error
- 2249 7.1.209 GTK GUI: when using the netrw plugin ":gui" causes a hang
- 1923 7.1.210 listing mapping for 0xdb fails when 'encoding' is utf-8
- 25525 7.1.211 matchparen plugin may take so long it looks like Vim hangs
- 1491 7.1.212 accessing a byte before a line
- 1750 7.1.213 aborting ":tabedit" from the ATTENTION dialog leaves tab open
- 8399 7.1.214 ":1s/g\n\zs1//" deletes characters from the first line
- 6476 7.1.215 it's difficult to figure out the nesting of syntax items
- 2360 7.1.216 variants of --remote-tab are not mentioned for "vim --help"
- 7103 7.1.217 the "help-tags" tag may be missing from runtime/doc/tags
- 1864 7.1.218 syntax region without "keepend" could be truncated
- 12134 7.1.219 (after 7.1.215) synstack() doesn't work for one char region
- 3928 7.1.220 cursor may end up on trail byte after ")"
- 1978 7.1.221 when inserting a "(" the following highlighting may be wrong
- 3531 7.1.222 (after 7.1.217) wildcards of ":helptags" are not expanded
- 8138 7.1.223 glob() doesn't handle "'" when 'shell' is "sh" or "bash"
- 2131 7.1.224 "vim -F -o one two" sets 'rightleft' in one window only
- 1767 7.1.225 using unitialized value when XGetWMNormalHints() fails
- 1957 7.1.226 command line completion fails for a file name with a '&' char
- 5595 7.1.227 hang in syntax HL when moving over a ")"
- 1678 7.1.228 with 'foldmethod' "indent" fold can't be closed after "3>>"
- 1758 7.1.229 a fold is closed when backspacing in Insert mode
- 2052 7.1.230 memory leak when executing SourceCmd autocommands
- 8648 7.1.231 when shifting lines the change is acted upon multiple times
- 2002 7.1.232 (after 7.1.207 and 7.1.211) compiler warnings with MSVC
- 3249 7.1.233 crash with Insert mode completion for a user defined command
- 6865 7.1.234 display problems when diff'ing three files
- 5925 7.1.235 pattern matching is slow when using a lot of simple patterns
- 28992 7.1.236 hang when using complicated pattern and 'hlsearch' or ":match"
- 1704 7.1.237 compiler warning on an Alpha processor in Motif code
- 1801 7.1.238 searchpair() may fail when using 'c' or 'r' flag
- 1639 7.1.239 (after 7.1.233) compiler warning for sprintf() argument
- 5157 7.1.240 "gUe" may stop before the end of the word
- 3093 7.1.241 focus change events not always ignored
- 2262 7.1.242 "cib" doesn't work properly on "(x)"
- 4475 7.1.243 (after 7.1.240) "U" doesn't work on all text in Visual mode
- 1847 7.1.244 GUI may have part of the command line cut off
- 2767 7.1.245 pressing CTRL-\ three times causes Vim to quit
- 2739 7.1.246 configure hangs when the man pager is something strange
- 6028 7.1.247 Netbeans: backspacing in Insert mode may skip a character
- 3691 7.1.248 can't set the '" mark; can't know if setpos() was successful
- 2144 7.1.249 after "U" the cursor can be past end of line
- 1684 7.1.250 error for ":setglobal fenc=anything" when 'modifiable' is off
- 3134 7.1.251 accessing freed memory when spell checking enabled
- 1399 7.1.252 (after 7.1.243) test 39 fails when locale uses utf-8 encoding
- 1751 7.1.253 ":sort" doesn't work in a one line file
- 1894 7.1.254 Tests 49 and 55 fail when the locale is French
- 1514 7.1.255 Vim doesn't support utf-32
- 50921 7.1.256 findfile() also returns directories
- 3326 7.1.257 configure can't always find the Tcl header files
- 3360 7.1.258 crash when doing "d/\n/e" and 'virtualedit' is "all"
- 1944 7.1.259 cursor in wrong place with 'rl', "utf-8" and illegal byte
- 1805 7.1.260 cursor position wrong after ^@ wrapping halfway if using utf-8
- 2255 7.1.261 for a 2 byte BOM UCS-2 is used, which doesn't work for UTF-16
- 3438 7.1.262 can't get the process ID of Vim
- 2442 7.1.263 filetype with dot doesn't work for indent plugins
- 6295 7.1.264 crash when C-indenting
- 1310 7.1.265 hang when completing file name and space in 'isfname'
- 2510 7.1.266 version string returned by terminal may be used as typed input
- 1957 7.1.267 when changing folds cursor may be positioned in a wrong place
- 1576 7.1.268 always shows "+" at end of screen line with 'cursurline'
- 6183 7.1.269 matchparen plugin has an arbitrary line number limit
- 2861 7.1.270 ":?foo?" matches in current line since patch 7.1.025
- 1582 7.1.271 in tiny version ":!touch %" causes curbuf to be wrong
- 2334 7.1.272 buffer name [Location List] not used for buffer in other tab
- 2504 7.1.273 when profiling on Linux Vim exits early
- 1549 7.1.274 (after 7.1.272) compiler warning with optimized build
- 40835 7.1.275 (extra) Mac: ATSUI and 'antialias' don't work together
- 4946 7.1.276 "gw" uses 'formatexpr', even though the docs say it doesn't
- 2802 7.1.277 default for 'paragraphs' misses some items
- 1989 7.1.278 (extra, after 7.1.275) build problem
- 3848 7.1.279 when using cscope temporary files are left behind
- 1556 7.1.280 (after 7.1.275) Mac: build problems without multibyte feature
- 2094 7.1.281 (after 7.1.279) Vim hangs when cscope doesn't exit
- 16302 7.1.282 (extra) Win64: Installing context menu, compiler warnings
- 7633 7.1.283 non-extra part of 7.1.282
- 2258 7.1.284 compiler warnings for functions without prototype
- 5787 7.1.285 (extra) Mac: dialog hotkeys don't work
- 2045 7.1.286 (after 7.1.103) "w" at end of buffer moves cursor too far
- 1859 7.1.287 crash when reversing a list after using it
- 3182 7.1.288 (after 7.1.281) cscope leaves behind temp files with gvim
- 1979 7.1.289 when EXITFREE is defined and 'acd' is set freed memory is used
- 2146 7.1.290 reading unwritten bytes when spell checking with large indent
- 1940 7.1.291 compiler warning for int-long conversion
- 6698 7.1.292 when using a pattern with "\@<=" the submatches can be wrong
- 3087 7.1.293 spell checking considers super/subscript chars as word chars
+ 1877 7.2.001 Mac: pseudo-ttys don't work properly on Leopard
+ 1462 7.2.002 leaking memory when displaying menus
+ 3663 7.2.003 typo in translated message, message not translated
+ 3413 7.2.004 Cscope help message is not translated
+ 4638 7.2.005 a few problems when profiling
+ 1552 7.2.006 HTML files are not recognized by contents
+ 16735 7.2.007 (extra) minor issues for VMS
+ 1947 7.2.008 wrong window count when using :bunload in a BufHidden autocmd
+ 2245 7.2.009 can't compile with Perl 5.10 on MS-aindows
+ 5415 7.2.010 "K" in Visual mode does not properly escape all characters
+ 2873 7.2.011 error when inserting a float value from expression register
+ 1444 7.2.012 compiler warnings when building with startup timing
+ 4157 7.2.013 hang when waiting for X selection, consuming lots of CPU time
+ 1769 7.2.014 synstack() doesn't work in an emptly line
+ 1943 7.2.015 "make all test install" doesn't stop when the test fails
+ 4536 7.2.016 cmdline completion pattern can be in freed memory
+ 5319 7.2.017 X11: strlen() used wrongly, pasting very big selection fails
+ 1390 7.2.018 memory leak when substitute is aborted
+ 2269 7.2.019 completion and exists() don't work for ":noautocmd"
+ 1521 7.2.020 "kvim" starts the GUI even though KDE is no longer supported
+ 4806 7.2.021 getting full file name when executing autocmds may be slow
+ 3823 7.2.022 (extra) cannot run tests with the MingW compiler
+ 2062 7.2.023 'cursorcolumn' wrong in a closed fold when display is shifted
+ 1452 7.2.024 'history' can be made negative, causes out-of-memory error
+ 1470 7.2.025 a CursorHold event that invokes system() is retriggered
+ 2969 7.2.026 (after 7.2.010) 'K' uses the rest of the line
+ 3235 7.2.027 can use cscope commands in the sandbox, might not be safe
+ 1466 7.2.028 confusing error message for missing ()
+ 1291 7.2.029 no completion for ":doautoall" like for ":doautocmd"
+ 1546 7.2.030 (after 7.2.027) can't compile, ex_oldfiles undefined
+ 39400 7.2.031 file names from viminfo are not available to the user
+ 1583 7.2.032 (after 7.2.031) can't compile with EXITFREE defined
+ 2270 7.2.033 using "ucs-2le" for two-byte BOM, but text might be "utf-16le"
+ 2372 7.2.034 memory leak in spell info when deleting a buffer
+ 3522 7.2.035 mismatches for library and Vim alloc/free functions
+ 7545 7.2.036 (extra) mismatches for library and Vim alloc/free functions
+ 1576 7.2.037 double free with GTK 1 and compiled with EXITFREE
+ 2438 7.2.038 overlapping arguments to memcpy()
+ 1378 7.2.039 accessing freed memory on exit when EXITFREE is defined
+ 1836 7.2.040 ":e ++ff=dos foo" gets "unix" 'ff' when CR before NL missing
+ 22993 7.2.041 diff messed up when editing a diff buffer in another tab page
+ 4987 7.2.042 restoring view in autocmd sometimes doesn't work completely
+ 2550 7.2.043 VMS: Too many chars escaped in filename and shell commands
+ 5639 7.2.044 crash because of gcc 4 being over protective for strcpy()
+ 2056 7.2.045 the Python interface has an empty entry in sys.path
+ 1704 7.2.046 wrong check for filling buffer with encoding
+ 2470 7.2.047 using -nb while it is not supported makes other side hang
+ 4758 7.2.048 v:count and v:prevcount are not set correctly
+ 32552 7.2.049 (extra) Win32: the clipboard doesn't support UTF-16
+ 8484 7.2.050 compiler warnings for not using return value of fwrite()
+ 15179 7.2.051 can't avoid 'wig' and 'suffixes' for glob() and globpath()
+ 2611 7.2.052 synIDattr() doesn't support "sp" for special color
+ 1754 7.2.053 crash when using WorkShop command ":ws foo"
+ 2006 7.2.054 compilation warnings for fprintf format
+ 34319 7.2.055 various compiler warnings with strict checking
+ 1635 7.2.056 (after 7.2.050) tests 58 and 59 fail
+ 3210 7.2.057 (after 7.2.056) trying to put size_t in int variable
+ 2338 7.2.058 can't add a feature name in the :version output
+ 1847 7.2.059 diff is not always displayed properly
+ 34772 7.2.060 spell checking doesn't work well for compound words
Index: sources
===================================================================
RCS file: /cvs/extras/rpms/vim/F-9/sources,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- sources 5 Jun 2007 10:37:55 -0000 1.22
+++ sources 1 Dec 2008 15:06:22 -0000 1.23
@@ -1,3 +1,3 @@
-605cc7ae31bcc9d7864bb0bb6025f55d vim-7.1-extra.tar.gz
-144aa049ba70621acf4247f0459f3ee7 vim-7.1-lang.tar.gz
-44c6b4914f38d6f9aa959640b89da329 vim-7.1.tar.bz2
+35e04482f07c57221c9a751aaa3b8dac vim-7.2-extra.tar.gz
+d8884786979e0e520c112faf2e176f05 vim-7.2-lang.tar.gz
+556572edfda7a319541a3bc860c7fd36 vim-7.2.tar.bz2
Index: vim.spec
===================================================================
RCS file: /cvs/extras/rpms/vim/F-9/vim.spec,v
retrieving revision 1.207
retrieving revision 1.208
diff -u -r1.207 -r1.208
--- vim.spec 25 May 2008 14:53:35 -0000 1.207
+++ vim.spec 1 Dec 2008 15:06:23 -0000 1.208
@@ -8,23 +8,23 @@
%define desktop_file_utils_version 0.2.93
%endif
-%define withnetbeans 0
+%define withnetbeans 1
%define withvimspell 0
%define withhunspell 0
%define withruby 1
-%define baseversion 7.1
+%define baseversion 7.2
#used for pre-releases:
%define beta %{nil}
-%define vimdir vim71%{?beta}
-%define patchlevel 293
+%define vimdir vim72%{?beta}
+%define patchlevel 060
Summary: The VIM editor
URL: http://www.vim.org/
Name: vim
Version: %{baseversion}.%{beta}%{patchlevel}
-Release: 1%{?dist}.1
+Release: 1%{?dist}
License: Vim
Group: Applications/Editors
Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}%{?beta}%{?CVSDATE}.tar.bz2
@@ -45,6 +45,16 @@
Source14: spec-template
Source15: http://www.cvjb.de/comp/vim/forth.vim
+# remove this for the next major version, CVE fixes:
+Source16: ftp://ftp.vim.org/vol/2/vim/runtime/plugin/netrwPlugin.vim
+Source17: ftp://ftp.vim.org/vol/2/vim/runtime/plugin/gzip.vim
+Source18: ftp://ftp.vim.org/vol/2/vim/runtime/filetype.vim
+Source19: ftp://ftp.vim.org/vol/2/vim/runtime/autoload/zip.vim
+Source20: ftp://ftp.vim.org/vol/2/vim/runtime/autoload/tar.vim
+Source21: ftp://ftp.vim.org/vol/2/vim/runtime/autoload/netrwFileHandlers.vim
+Source22: ftp://ftp.vim.org/vol/2/vim/runtime/autoload/netrw.vim
+Source23: ftp://ftp.vim.org/vol/2/vim/runtime/autoload/netrwSettings.vim
+
Patch2002: vim-7.0-fixkeys.patch
Patch2003: vim-6.2-specsyntax.patch
Patch2004: vim-7.0-crv.patch
@@ -56,317 +66,77 @@
# Patches 001 < 999 are patches from the base maintainer.
# If you're as lazy as me, generate the list using
# for i in `seq 1 14`; do printf "Patch%03d: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.%03d\n" $i $i; done
-Patch001: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.001
-Patch002: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.002
-Patch003: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.003
-Patch004: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.004
-Patch005: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.005
-Patch006: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.006
-Patch007: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.007
-Patch008: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.008
-Patch009: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.009
-Patch010: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.010
-Patch011: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.011
-Patch012: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.012
-Patch013: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.013
-Patch014: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.014
-Patch015: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.015
-Patch016: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.016
-Patch017: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.017
-Patch018: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.018
-Patch019: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.019
-Patch020: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.020
-Patch021: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.021
-Patch022: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.022
-Patch023: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.023
-Patch024: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.024
-Patch025: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.025
-Patch026: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.026
-Patch027: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.027
-Patch028: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.028
-Patch029: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.029
-Patch030: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.030
-Patch031: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.031
-Patch032: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.032
-Patch033: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.033
-Patch034: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.034
-Patch035: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.035
-Patch036: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.036
-Patch037: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.037
-Patch038: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.038
-Patch039: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.039
-Patch040: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.040
-Patch041: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.041
-Patch042: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.042
-Patch043: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.043
-Patch044: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.044
-Patch045: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.045
-Patch046: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.046
-Patch047: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.047
-Patch048: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.048
-Patch049: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.049
-Patch050: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.050
-Patch051: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.051
-Patch052: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.052
-Patch053: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.053
-Patch054: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.054
-Patch055: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.055
-Patch056: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.056
-Patch057: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.057
-Patch058: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.058
-Patch059: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.059
-Patch060: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.060
-Patch061: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.061
-Patch062: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.062
-Patch063: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.063
-Patch064: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.064
-Patch065: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.065
-Patch066: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.066
-Patch067: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.067
-Patch068: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.068
-Patch069: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.069
-Patch070: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.070
-Patch071: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.071
-Patch072: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.072
-Patch073: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.073
-Patch074: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.074
-Patch075: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.075
-Patch076: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.076
-Patch077: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.077
-Patch078: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.078
-Patch079: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.079
-Patch080: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.080
-Patch081: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.081
-Patch082: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.082
-Patch083: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.083
-Patch084: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.084
-Patch085: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.085
-Patch086: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.086
-Patch087: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.087
-Patch088: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.088
-Patch089: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.089
-Patch090: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.090
-Patch091: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.091
-Patch092: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.092
-Patch093: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.093
-Patch094: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.094
-Patch095: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.095
-Patch096: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.096
-Patch097: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.097
-Patch098: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.098
-Patch099: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.099
-Patch100: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.100
-Patch101: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.101
-Patch102: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.102
-Patch103: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.103
-Patch104: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.104
-Patch105: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.105
-Patch106: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.106
-Patch107: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.107
-Patch108: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.108
-Patch109: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.109
-Patch110: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.110
-Patch111: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.111
-Patch112: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.112
-Patch113: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.113
-Patch114: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.114
-Patch115: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.115
-Patch116: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.116
-Patch117: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.117
-Patch118: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.118
-Patch119: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.119
-Patch120: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.120
-Patch121: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.121
-Patch122: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.122
-Patch123: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.123
-Patch124: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.124
-Patch125: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.125
-Patch126: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.126
-Patch127: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.127
-Patch128: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.128
-Patch129: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.129
-Patch130: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.130
-Patch131: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.131
-Patch132: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.132
-Patch133: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.133
-Patch134: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.134
-Patch135: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.135
-Patch136: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.136
-Patch137: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.137
-Patch138: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.138
-Patch139: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.139
-Patch140: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.140
-Patch141: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.141
-Patch142: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.142
-Patch143: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.143
-Patch144: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.144
-Patch145: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.145
-Patch146: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.146
-Patch147: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.147
-Patch148: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.148
-Patch149: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.149
-Patch150: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.150
-Patch151: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.151
-Patch152: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.152
-Patch153: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.153
-Patch154: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.154
-Patch155: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.155
-Patch156: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.156
-Patch157: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.157
-Patch158: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.158
-Patch159: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.159
-Patch160: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.160
-Patch161: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.161
-Patch162: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.162
-Patch163: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.163
-Patch164: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.164
-Patch165: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.165
-Patch166: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.166
-Patch167: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.167
-Patch168: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.168
-Patch169: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.169
-Patch170: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.170
-Patch171: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.171
-Patch172: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.172
-Patch173: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.173
-Patch174: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.174
-Patch175: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.175
-Patch176: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.176
-Patch177: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.177
-Patch178: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.178
-Patch179: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.179
-Patch180: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.180
-Patch181: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.181
-Patch182: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.182
-Patch183: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.183
-Patch184: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.184
-Patch185: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.185
-Patch186: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.186
-Patch187: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.187
-Patch188: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.188
-Patch189: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.189
-Patch190: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.190
-Patch191: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.191
-Patch192: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.192
-Patch193: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.193
-Patch194: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.194
-Patch195: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.195
-Patch196: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.196
-Patch197: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.197
-Patch198: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.198
-Patch199: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.199
-Patch200: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.200
-Patch201: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.201
-Patch202: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.202
-Patch203: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.203
-Patch204: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.204
-Patch205: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.205
-Patch206: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.206
-Patch207: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.207
-Patch208: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.208
-Patch209: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.209
-Patch210: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.210
-Patch211: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.211
-Patch212: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.212
-Patch213: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.213
-Patch214: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.214
-Patch215: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.215
-Patch216: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.216
-Patch217: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.217
-Patch218: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.218
-Patch219: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.219
-Patch220: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.220
-Patch221: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.221
-Patch222: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.222
-Patch223: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.223
-Patch224: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.224
-Patch225: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.225
-Patch226: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.226
-Patch227: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.227
-Patch228: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.228
-Patch229: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.229
-Patch230: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.230
-Patch231: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.231
-Patch232: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.232
-Patch233: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.233
-Patch234: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.234
-Patch235: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.235
-Patch236: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.236
-Patch237: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.237
-Patch238: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.238
-Patch239: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.239
-Patch240: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.240
-Patch241: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.241
-Patch242: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.242
-Patch243: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.243
-Patch244: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.244
-Patch245: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.245
-Patch246: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.246
-Patch247: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.247
-Patch248: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.248
-Patch249: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.249
-Patch250: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.250
-Patch251: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.251
-Patch252: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.252
-Patch253: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.253
-Patch254: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.254
-Patch255: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.255
-Patch256: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.256
-Patch257: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.257
-Patch258: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.258
-Patch259: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.259
-Patch260: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.260
-Patch261: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.261
-Patch262: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.262
-Patch263: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.263
-Patch264: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.264
-Patch265: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.265
-Patch266: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.266
-Patch267: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.267
-Patch268: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.268
-Patch269: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.269
-Patch270: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.270
-Patch271: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.271
-Patch272: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.272
-Patch273: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.273
-Patch274: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.274
-Patch275: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.275
-Patch276: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.276
-Patch277: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.277
-Patch278: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.278
-Patch279: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.279
-Patch280: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.280
-Patch281: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.281
-Patch282: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.282
-Patch283: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.283
-Patch284: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.284
-Patch285: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.285
-Patch286: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.286
-Patch287: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.287
-Patch288: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.288
-Patch289: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.289
-Patch290: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.290
-Patch291: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.291
-Patch292: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.292
-Patch293: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.293
+Patch001: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.001
+Patch002: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.002
+Patch003: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.003
+Patch004: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.004
+Patch005: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.005
+Patch006: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.006
+Patch007: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.007
+Patch008: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.008
+Patch009: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.009
+Patch010: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.010
+Patch011: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.011
+Patch012: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.012
+Patch013: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.013
+Patch014: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.014
+Patch015: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.015
+Patch016: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.016
+Patch017: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.017
+Patch018: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.018
+Patch019: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.019
+Patch020: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.020
+Patch021: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.021
+Patch022: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.022
+Patch023: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.023
+Patch024: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.024
+Patch025: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.025
+Patch026: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.026
+Patch027: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.027
+Patch028: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.028
+Patch029: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.029
+Patch030: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.030
+Patch031: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.031
+Patch032: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.032
+Patch033: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.033
+Patch034: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.034
+Patch035: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.035
+Patch036: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.036
+Patch037: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.037
+Patch038: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.038
+Patch039: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.039
+Patch040: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.040
+Patch041: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.041
+Patch042: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.042
+Patch043: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.043
+Patch044: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.044
+Patch045: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.045
+Patch046: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.046
+Patch047: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.047
+Patch048: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.048
+Patch049: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.049
+Patch050: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.050
+Patch051: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.051
+Patch052: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.052
+Patch053: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.053
+Patch054: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.054
+Patch055: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.055
+Patch056: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.056
+Patch057: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.057
+Patch058: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.058
+Patch059: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.059
+Patch060: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.060
Patch3000: vim-7.0-syntax.patch
Patch3002: vim-7.1-nowarnings.patch
Patch3003: vim-6.1-rh3.patch
Patch3004: vim-7.0-rclocation.patch
Patch3006: vim-6.4-checkhl.patch
-Patch3007: vim-7.0-fstabsyntax.patch
-Patch3008: vim-6.4-lib64.patch
+Patch3007: vim-7.2-fstabsyntax.patch
+Patch3008: vim-7.1-lib64.patch
Patch3009: vim-7.0-warning.patch
Patch3010: vim-7.0-syncolor.patch
-Patch3011: vim-7.0-vimspelltypo.patch
-Patch3012: vim-7.0-specedit.patch
-# Remove this one when the runtime files get updated (#246378):
-Patch3013: vim-7.1-ada.patch
-#
-Patch3014: vim-7.1-erlang.patch
-Patch3100: vim-selinux.patch
-Patch3101: vim-selinux2.patch
+Patch3011: vim-7.0-specedit.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: python-devel ncurses-devel gettext perl-devel
@@ -457,6 +227,7 @@
Provides: gvim = %{version}-%{release}
BuildRequires: gtk2-devel libSM-devel libXt-devel libXpm-devel
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+Requires: hicolor-icon-theme
%description X11
VIM (VIsual editor iMproved) is an updated and improved version of the
@@ -500,22 +271,22 @@
%patch010 -p0
%patch011 -p0
%patch012 -p0
-%patch013 -p0
-%patch014 -p0
-%patch015 -p0
-%patch016 -p0
-%patch017 -p0
-%patch018 -p0
-%patch019 -p0
-%patch020 -p0
-%patch021 -p0
-%patch022 -p0
-%patch023 -p0
-%patch024 -p0
-%patch025 -p0
-%patch026 -p0
-%patch027 -p0
-%patch028 -p0
+%patch013 -p0
+%patch014 -p0
+%patch015 -p0
+%patch016 -p0
+%patch017 -p0
+%patch018 -p0
+%patch019 -p0
+%patch020 -p0
+%patch021 -p0
+%patch022 -p0
+%patch023 -p0
+%patch024 -p0
+%patch025 -p0
+%patch026 -p0
+%patch027 -p0
+%patch028 -p0
%patch029 -p0
%patch030 -p0
%patch031 -p0
@@ -548,239 +319,6 @@
%patch058 -p0
%patch059 -p0
%patch060 -p0
-%patch061 -p0
-%patch062 -p0
-%patch063 -p0
-%patch064 -p0
-%patch065 -p0
-%patch066 -p0
-%patch067 -p0
-%patch068 -p0
-%patch069 -p0
-%patch070 -p0
-%patch071 -p0
-%patch072 -p0
-%patch073 -p0
-%patch074 -p0
-%patch075 -p0
-%patch076 -p0
-%patch077 -p0
-%patch078 -p0
-%patch079 -p0
-%patch080 -p0
-%patch081 -p0
-%patch082 -p0
-%patch083 -p0
-%patch084 -p0
-%patch085 -p0
-%patch086 -p0
-%patch087 -p0
-%patch088 -p0
-%patch089 -p0
-%patch090 -p0
-%patch091 -p0
-%patch092 -p0
-%patch093 -p0
-%patch094 -p0
-%patch095 -p0
-%patch096 -p0
-%patch097 -p0
-%patch098 -p0
-%patch099 -p0
-%patch100 -p0
-%patch101 -p0
-%patch102 -p0
-%patch103 -p0
-%patch104 -p0
-%patch105 -p0
-%patch106 -p0
-%patch107 -p0
-%patch108 -p0
-%patch109 -p0
-%patch110 -p0
-%patch111 -p0
-%patch112 -p0
-%patch113 -p0
-%patch114 -p0
-%patch115 -p0
-%patch116 -p0
-%patch117 -p0
-%patch118 -p0
-%patch119 -p0
-%patch120 -p0
-%patch121 -p0
-%patch122 -p0
-%patch123 -p0
-%patch124 -p0
-%patch125 -p0
-%patch126 -p0
-%patch127 -p0
-%patch128 -p0
-%patch129 -p0
-%patch130 -p0
-%patch131 -p0
-%patch132 -p0
-%patch133 -p0
-%patch134 -p0
-%patch135 -p0
-%patch136 -p0
-%patch137 -p0
-%patch138 -p0
-%patch139 -p0
-%patch140 -p0
-%patch141 -p0
-%patch142 -p0
-%patch143 -p0
-%patch144 -p0
-%patch145 -p0
-%patch146 -p0
-%patch147 -p0
-%patch148 -p0
-%patch149 -p0
-%patch150 -p0
-%patch151 -p0
-%patch152 -p0
-%patch153 -p0
-%patch154 -p0
-%patch155 -p0
-%patch156 -p0
-%patch157 -p0
-%patch158 -p0
-%patch159 -p0
-%patch160 -p0
-%patch161 -p0
-%patch162 -p0
-%patch163 -p0
-%patch164 -p0
-%patch165 -p0
-%patch166 -p0
-%patch167 -p0
-%patch168 -p0
-%patch169 -p0
-%patch170 -p0
-%patch171 -p0
-%patch172 -p0
-%patch173 -p0
-%patch174 -p0
-%patch175 -p0
-%patch176 -p0
-%patch177 -p0
-%patch178 -p0
-%patch179 -p0
-%patch180 -p0
-%patch181 -p0
-%patch182 -p0
-%patch183 -p0
-%patch184 -p0
-%patch185 -p0
-%patch186 -p0
-%patch187 -p0
-%patch188 -p0
-%patch189 -p0
-%patch190 -p0
-%patch191 -p0
-%patch192 -p0
-%patch193 -p0
-%patch194 -p0
-%patch195 -p0
-%patch196 -p0
-%patch197 -p0
-%patch198 -p0
-%patch199 -p0
-%patch200 -p0
-%patch201 -p0
-%patch202 -p0
-%patch203 -p0
-%patch204 -p0
-%patch205 -p0
-%patch206 -p0
-%patch207 -p0
-%patch208 -p0
-%patch209 -p0
-%patch210 -p0
-%patch211 -p0
-%patch212 -p0
-%patch213 -p0
-%patch214 -p0
-%patch215 -p0
-%patch216 -p0
-%patch217 -p0
-%patch218 -p0
-%patch219 -p0
-%patch220 -p0
-%patch221 -p0
-%patch222 -p0
-%patch223 -p0
-%patch224 -p0
-%patch225 -p0
-%patch226 -p0
-%patch227 -p0
-%patch228 -p0
-%patch229 -p0
-%patch230 -p0
-%patch231 -p0
-%patch232 -p0
-%patch233 -p0
-%patch234 -p0
-%patch235 -p0
-%patch236 -p0
-%patch237 -p0
-%patch238 -p0
-%patch239 -p0
-%patch240 -p0
-%patch241 -p0
-%patch242 -p0
-%patch243 -p0
-%patch244 -p0
-%patch245 -p0
-%patch246 -p0
-%patch247 -p0
-%patch248 -p0
-%patch249 -p0
-%patch250 -p0
-%patch251 -p0
-%patch252 -p0
-%patch253 -p0
-%patch254 -p0
-%patch255 -p0
-%patch256 -p0
-%patch257 -p0
-%patch258 -p0
-%patch259 -p0
-%patch260 -p0
-%patch261 -p0
-%patch262 -p0
-%patch263 -p0
-%patch264 -p0
-%patch265 -p0
-%patch266 -p0
-%patch267 -p0
-%patch268 -p0
-%patch269 -p0
-%patch270 -p0
-%patch271 -p0
-%patch272 -p0
-%patch273 -p0
-%patch274 -p0
-%patch275 -p0
-%patch276 -p0
-%patch277 -p0
-%patch278 -p0
-%patch279 -p0
-%patch280 -p0
-%patch281 -p0
-%patch282 -p0
-%patch283 -p0
-%patch284 -p0
-%patch285 -p0
-%patch286 -p0
-%patch287 -p0
-%patch288 -p0
-%patch289 -p0
-%patch290 -p0
-%patch291 -p0
-%patch292 -p0
-%patch293 -p0
# install spell files
@@ -799,15 +337,16 @@
%patch3009 -p1
%patch3010 -p1
%patch3011 -p1
-%patch3012 -p1
-%patch3013 -p1
-%patch3014 -p1
-%if %{WITH_SELINUX}
-%patch3100 -p1
-%patch3101 -p1
-%endif
cp -f %{SOURCE15} runtime/syntax/forth.vim
+cp -f %{SOURCE16} runtime/plugin/netrwPlugin.vim
+cp -f %{SOURCE17} runtime/plugin/gzip.vim
+cp -f %{SOURCE18} runtime/plugin/filetype.vim
+cp -f %{SOURCE19} runtime/autoload/zip.vim
+cp -f %{SOURCE20} runtime/autoload/tar.vim
+cp -f %{SOURCE21} runtime/autoload/netrwFileHandlers.vim
+cp -f %{SOURCE22} runtime/autoload/netrw.vim
+cp -f %{SOURCE23} runtime/autoload/netrwSettings.vim
%build
@@ -829,6 +368,11 @@
%else
--disable-netbeans \
%endif
+%if %{WITH_SELINUX}
+ --enable-selinux \
+%else
+ --disable-selinux \
+%endif
%if "%{withruby}" == "1"
--enable-rubyinterp \
%else
@@ -850,6 +394,11 @@
%else
--disable-netbeans \
%endif
+%if %{WITH_SELINUX}
+ --enable-selinux \
+%else
+ --disable-selinux \
+%endif
%if "%{withruby}" == "1"
--enable-rubyinterp \
%else
@@ -865,6 +414,11 @@
%configure --prefix=%{_prefix} --with-features=small --with-x=no \
--enable-multibyte \
--disable-netbeans \
+%if %{WITH_SELINUX}
+ --enable-selinux \
+%else
+ --disable-selinux \
+%endif
--disable-pythoninterp --disable-perlinterp --disable-tclinterp \
--with-tlib=ncurses --enable-gui=no --disable-gpm --exec-prefix=/ \
--with-compiledby="<bugzilla at redhat.com>" \
@@ -876,15 +430,20 @@
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/bin
mkdir -p $RPM_BUILD_ROOT/%{_bindir}
-mkdir -p $RPM_BUILD_ROOT/%{_datadir}/%{name}/vimfiles/after
+mkdir -p $RPM_BUILD_ROOT/%{_datadir}/%{name}/vimfiles/{after,autoload,colors,compiler,doc,ftdetect,ftplugin,indent,keymap,lang,plugin,print,spell,syntax,tutor}
+mkdir -p $RPM_BUILD_ROOT/%{_datadir}/%{name}/vimfiles/after/{autoload,colors,compiler,doc,ftdetect,ftplugin,indent,keymap,lang,plugin,print,spell,syntax,tutor}
cp -f %{SOURCE11} .
cp -f %{SOURCE14} $RPM_BUILD_ROOT/%{_datadir}/%{name}/vimfiles/template.spec
cp runtime/doc/uganda.txt LICENSE
+# Those aren't Linux info files but some binary files for Amiga:
+rm -f README*.info
cd src
make install DESTDIR=$RPM_BUILD_ROOT BINDIR=/bin
+make installgtutorbin DESTDIR=$RPM_BUILD_ROOT BINDIR=/bin
mv $RPM_BUILD_ROOT/bin/xxd $RPM_BUILD_ROOT/%{_bindir}/xxd
+mv $RPM_BUILD_ROOT/bin/gvimtutor $RPM_BUILD_ROOT/%{_bindir}/gvimtutor
mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64}/apps
install -m755 gvim $RPM_BUILD_ROOT/%{_bindir}/gvim
install -p -m644 %{SOURCE7} \
@@ -912,20 +471,17 @@
rm -f .%{_mandir}/man1/rvim.1
ln -sf vim.1.gz .%{_mandir}/man1/vi.1.gz
ln -sf vim.1.gz .%{_mandir}/man1/rvi.1.gz
- ln -sf vim.1.gz .%{_mandir}/man1/rvim.1.gz
ln -sf vim.1.gz .%{_mandir}/man1/vimdiff.1.gz
ln -sf gvim ./%{_bindir}/gview
ln -sf gvim ./%{_bindir}/gex
ln -sf gvim ./%{_bindir}/evim
ln -sf gvim ./%{_bindir}/gvimdiff
- ln -sf vim.1.gz .%{_mandir}/man1/gvim.1.gz
- ln -sf vim.1.gz .%{_mandir}/man1/gvimdiff.1.gz
ln -sf gvim ./%{_bindir}/vimx
%if "%{desktop_file}" == "1"
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications
desktop-file-install --vendor fedora \
--dir $RPM_BUILD_ROOT/%{_datadir}/applications \
- --add-category "Application;Development;X-Red-Hat-Base" \
+ --add-category "Development;TextEditor;X-Red-Hat-Base" \
%{SOURCE3}
%else
mkdir -p ./%{_sysconfdir}/X11/applnk/Applications
@@ -940,7 +496,7 @@
mkdir conv
iconv -f CP1252 -t UTF8 tutor.ca > conv/tutor.ca
iconv -f CP1252 -t UTF8 tutor.it > conv/tutor.it
- iconv -f CP1253 -t UTF8 tutor.gr > conv/tutor.gr
+ #iconv -f CP1253 -t UTF8 tutor.gr > conv/tutor.gr
iconv -f CP1252 -t UTF8 tutor.fr > conv/tutor.fr
iconv -f CP1252 -t UTF8 tutor.es > conv/tutor.es
iconv -f CP1252 -t UTF8 tutor.de > conv/tutor.de
@@ -954,7 +510,7 @@
iconv -f ISO-8859-2 -t UTF8 tutor.sk > conv/tutor.sk
iconv -f KOI8R -t UTF8 tutor.ru > conv/tutor.ru
iconv -f CP1252 -t UTF8 tutor.sv > conv/tutor.sv
- mv -f tutor.gr.cp737 tutor.ja.euc tutor.ja.sjis tutor.ko.euc tutor.pl.cp1250 tutor.zh.big5 tutor.ru.cp1251 tutor.zh.euc conv/
+ mv -f tutor.ja.euc tutor.ja.sjis tutor.ko.euc tutor.pl.cp1250 tutor.zh.big5 tutor.ru.cp1251 tutor.zh.euc conv/
rm -f tutor.ca tutor.de tutor.es tutor.fr tutor.gr tutor.it tutor.ja.utf-8 tutor.ko.utf-8 tutor.no tutor.pl tutor.sk tutor.ru tutor.sv
mv -f conv/* .
rmdir conv
@@ -1008,6 +564,23 @@
done
)
+# Remove not UTF-8 manpages
+for i in pl.ISO8859-2 it.ISO8859-1 ru.KOI8-R fr.ISO8859-1; do
+ rm -rf $RPM_BUILD_ROOT/%{_mandir}/$i
+done
+
+# use common man1/ru directory
+mv $RPM_BUILD_ROOT/%{_mandir}/ru.UTF-8 $RPM_BUILD_ROOT/%{_mandir}/ru
+
+# Remove duplicate man pages
+for i in fr.UTF-8 it.UTF-8 pl.UTF-8; do
+ rm -rf $RPM_BUILD_ROOT/%{_mandir}/$i
+done
+
+for i in rvim gvim.1 gvimdiff.1; do
+ echo ".so man1/vim.1" > $RPM_BUILD_ROOT/%{_mandir}/man1/$i
+done
+
%post X11
touch --no-create %{_datadir}/icons/hicolor
if [ -x /%{_bindir}/gtk-update-icon-cache ]; then
@@ -1035,6 +608,21 @@
%dir %{_datadir}/%{name}/%{vimdir}
%dir %{_datadir}/%{name}/vimfiles
%dir %{_datadir}/%{name}/vimfiles/after
+%dir %{_datadir}/%{name}/vimfiles/after/*
+%dir %{_datadir}/%{name}/vimfiles/autoload
+%dir %{_datadir}/%{name}/vimfiles/colors
+%dir %{_datadir}/%{name}/vimfiles/compiler
+%dir %{_datadir}/%{name}/vimfiles/doc
+%dir %{_datadir}/%{name}/vimfiles/ftdetect
+%dir %{_datadir}/%{name}/vimfiles/ftplugin
+%dir %{_datadir}/%{name}/vimfiles/indent
+%dir %{_datadir}/%{name}/vimfiles/keymap
+%dir %{_datadir}/%{name}/vimfiles/lang
+%dir %{_datadir}/%{name}/vimfiles/plugin
+%dir %{_datadir}/%{name}/vimfiles/print
+%dir %{_datadir}/%{name}/vimfiles/spell
+%dir %{_datadir}/%{name}/vimfiles/syntax
+%dir %{_datadir}/%{name}/vimfiles/tutor
%{_datadir}/%{name}/vimfiles/template.spec
%{_datadir}/%{name}/%{vimdir}/autoload
%{_datadir}/%{name}/%{vimdir}/colors
@@ -1060,7 +648,9 @@
%lang(cs) %{_datadir}/%{name}/%{vimdir}/lang/cs
%lang(de) %{_datadir}/%{name}/%{vimdir}/lang/de
%lang(en_GB) %{_datadir}/%{name}/%{vimdir}/lang/en_GB
+%lang(eo) %{_datadir}/%{name}/%{vimdir}/lang/eo
%lang(es) %{_datadir}/%{name}/%{vimdir}/lang/es
+%lang(fi) %{_datadir}/%{name}/%{vimdir}/lang/fi
%lang(fr) %{_datadir}/%{name}/%{vimdir}/lang/fr
%lang(ga) %{_datadir}/%{name}/%{vimdir}/lang/ga
%lang(it) %{_datadir}/%{name}/%{vimdir}/lang/it
@@ -1068,6 +658,7 @@
%lang(ko) %{_datadir}/%{name}/%{vimdir}/lang/ko
%lang(no) %{_datadir}/%{name}/%{vimdir}/lang/no
%lang(pl) %{_datadir}/%{name}/%{vimdir}/lang/pl
+%lang(pt_BR) %{_datadir}/%{name}/%{vimdir}/lang/pt_BR
%lang(ru) %{_datadir}/%{name}/%{vimdir}/lang/ru
%lang(sk) %{_datadir}/%{name}/%{vimdir}/lang/sk
%lang(sv) %{_datadir}/%{name}/%{vimdir}/lang/sv
@@ -1085,10 +676,10 @@
%{_mandir}/man1/rvi.*
%{_mandir}/man1/rview.*
%{_mandir}/man1/xxd.*
-%lang(fr) %{_mandir}/fr*/*/*
-%lang(it) %{_mandir}/it*/*/*
-%lang(ru) %{_mandir}/ru*/*/*
-%lang(pl) %{_mandir}/pl*/*/*
+%lang(fr) %{_mandir}/fr/man1/*
+%lang(it) %{_mandir}/it/man1/*
+%lang(pl) %{_mandir}/pl/man1/*
+%lang(ru) %{_mandir}/ru/man1/*
%if %{withvimspell}
%files spell
@@ -1175,6 +766,7 @@
%else
/%{_sysconfdir}/X11/applnk/*/gvim.desktop
%endif
+%{_bindir}/gvimtutor
%{_bindir}/gvim
%{_bindir}/gvimdiff
%{_bindir}/gview
@@ -1186,353 +778,46 @@
%{_datadir}/icons/hicolor/*/apps/*
%changelog
-* Sun May 25 2008 Dennis Gilmore <dennis at ausil.us> 7.1.293-1.1
-- minor rebuild for sparc
-
-* Fri Apr 11 2008 Karsten Hopp <karsten at redhat.com> 7.1.293-1
-- patchlevel 293
-- update forth syntax file (Benjamin Krill)
-
-* Wed Apr 02 2008 Karsten Hopp <karsten at redhat.com> 7.1.291-1
-- patchlevel 291, more fixes for leftover /tmp/cscope* files
-
-* Tue Mar 18 2008 Tom "spot" Callaway <tcallawa at redhat.com> 7.1.283-2
-- add Requires for versioned perl (libperl.so)
-
-* Mon Mar 17 2008 Karsten Hopp <karsten at redhat.com> 7.1.283-1
-- patchlevel 283, fixes leftover cscope files in /tmp
-
-* Wed Mar 12 2008 Karsten Hopp <karsten at redhat.com> 7.1.273-1
-- update to patchlevel 273, this fixes #436902
-
-* Tue Mar 11 2008 Karsten Hopp <karsten at redhat.com> 7.1.270-1
-- patchlevel 270
-- don't write swapfile on most common locations for USB-sticks (#436752)
-- add spec file template
-
-* Mon Mar 10 2008 Tom "spot" Callaway <tcallawa at redhat.com> 7.1.269-2
-- BR: ExtUtils::Embed to find perl headers
-
-* Mon Mar 10 2008 Karsten Hopp <karsten at redhat.com> 7.1.269-1
-- patchlevel 269
-- rebuild with new perl (#436731)
-
-* Mon Mar 03 2008 Karsten Hopp <karsten at redhat.com> 7.1.266-1
-- patchlevel 266
-- add minimal help page for /bin/vi (#173974)
-
-* Mon Feb 25 2008 Karsten Hopp <karsten at redhat.com> 7.1.262-1
-- patchlevel 262
-- add fix for #231124, BOM was ignored
-- enable ruby interpreter (#215207)
-- add filetype for Erlang header files (#417371)
-
-* Mon Feb 11 2008 Karsten Hopp <karsten at redhat.com> 7.1.245-1
-- patchlevel 245
-
-* Sun Jan 27 2008 Karsten Hopp <karsten at redhat.com> 7.1.242-1
-- patchlevel 242
-
-* Fri Jan 18 2008 Karsten Hopp <karsten at redhat.com> 7.1.233-2
-- silence taglist plugin (#429200)
-
-* Fri Jan 18 2008 Karsten Hopp <karsten at redhat.com> 7.1.233-1
-- patchlevel 233
-- fix ada patch
-
-* Wed Jan 16 2008 Karsten Hopp <karsten at redhat.com> 7.1.230-2
-- add newer ada runtime files to fix bugzilla #246378
-
-* Wed Jan 16 2008 Karsten Hopp <karsten at redhat.com> 7.1.230-1
-- patchlevel 230, fixes memory leak
-
-* Mon Jan 14 2008 Karsten Hopp <karsten at redhat.com> 7.1.228-1
-- patchlevel 228
-- allow overwriting WITH_SELING at build time (#427710)
-
-* Thu Jan 10 2008 Karsten Hopp <karsten at redhat.com> 7.1.214-1
-- patchlevel 214
-
-* Mon Jan 07 2008 Karsten Hopp <karsten at redhat.com> 7.1.211-1
-- patchlevel 211
-
-* Sat Dec 22 2007 Karsten Hopp <karsten at redhat.com> 7.1.175-1
-- patchlevel 175
-
-* Thu Nov 22 2007 Karsten Hopp <karsten at redhat.com> 7.1.159-1
-- patchlevel 159
-- vim-enhanced requires which for vimtutor (#395371)
-
-* Thu Oct 04 2007 Karsten Hopp <karsten at redhat.com> 7.1.135-1
-- patchlevel 135
-
-* Wed Sep 26 2007 Karsten Hopp <karsten at redhat.com> 7.1.122-1
-- patchlevel 122
-
-* Tue Sep 25 2007 Karsten Hopp <karsten at redhat.com> 7.1.119-1
-- patchlevel 119
-
-* Mon Sep 24 2007 Karsten Hopp <karsten at redhat.com> 7.1.116-1
-- patchlevel 116
-
-* Fri Sep 07 2007 Karsten Hopp <karsten at redhat.com> 7.1.100-1
-- patchlevel 100
-
-* Fri Aug 24 2007 Karsten Hopp <karsten at redhat.com> 7.1.87-1
-- add build requirement perl-devel
-- fix tarball unpacking
-- patchlevel 87
-
-* Wed Aug 15 2007 Karsten Hopp <karsten at redhat.com> 7.1.77-1
-- patchlevel 77
-
-* Mon Aug 13 2007 Karsten Hopp <karsten at redhat.com> 7.1.68-1
-- patchlevel 68
-
-* Thu Aug 02 2007 Karsten Hopp <karsten at redhat.com> 7.1.47-1
-- patchlevel 47
+* Mon Dec 01 2008 Karsten Hopp <karsten at redhat.com> 7.2.060-1
+- patchlevel 60
-* Wed Jul 11 2007 Karsten Hopp <karsten at redhat.com> 7.1.28-1
-- patchlevel 28
+* Mon Nov 10 2008 Karsten Hopp <karsten at redhat.com> 7.2.032-1
+- patchlevel 32
-* Wed Jun 27 2007 Karsten Hopp <karsten at redhat.com> 7.1.12-1
-- Patchlevel 12
+* Mon Nov 03 2008 Karsten Hopp <karsten at redhat.com> 7.2.026-2
+- add more /usr/share/vim/vimfiles directories (#444387)
-* Mon Jun 04 2007 Karsten Hopp <karsten at redhat.com> 7.1.2-1
-- vim 7.1
-- drop 240 patches
+* Mon Nov 03 2008 Karsten Hopp <karsten at redhat.com> 7.2.026-1
+- patchlevel 26
+- own some directories in /usr/share/vim/vimfiles (#469491)
+
+* Tue Oct 21 2008 Karsten Hopp <karsten at redhat.com> 7.2.025-2
+- re-enable clean
+
+* Mon Oct 20 2008 Karsten Hopp <karsten at redhat.com> 7.2.025-1
+- patchlevel 25
+- add Categories tag to desktop file (#226526)
+- add requirement on hicolor-icon-theme to vim-X11 (#226526)
+- drop Amiga info files (#226526)
+- remove non-utf8 man pages (#226526)
+- drop Application from categories (#226526)
-* Tue May 22 2007 Karsten Hopp <karsten at redhat.com> 7.0.235-1
-- Don't wake up system with blinking gvim cursor:
- http://www.linuxpowertop.org/known.php
-
-* Mon Apr 30 2007 Karsten Hopp <karsten at redhat.com> 7.0.235-1
-- update to patchlevel 235, fixes modeline issues
-
-* Tue Apr 17 2007 Karsten Hopp <karsten at redhat.com> 7.0.224-3
-- fix typo in require line (vim-X11 - 2:7.0.224-2.fc7.i386 requires 4)
-
-* Mon Apr 16 2007 Karsten Hopp <karsten at redhat.com> 7.0.224-2
-- use more macros
-- drop BR perl
-- move license to main doc directory
-- set vendor to 'fedora' (desktop-file)
-- don't own man directories
-- preserve timestamps of non-generated files
-- run update-desktop-database
-
-* Thu Apr 05 2007 Karsten Hopp <karsten at redhat.com> 7.0.224-1
-- vim-X11 provides gvim
-
-* Fri Mar 30 2007 Karsten Hopp <karsten at redhat.com> 7.0.224-1
-- patchlevel 224
-
-* Wed Feb 21 2007 Karsten Hopp <karsten at redhat.com> 7.0.195-2
-- rpmlint fixes (#226526)
-
-* Tue Feb 13 2007 Karsten Hopp <karsten at redhat.com> 7.0.195-1
-- patchlevel 195
-
-* Mon Feb 12 2007 Karsten Hopp <karsten at redhat.com> 7.0.192-1
-- patchlevel 192
-- test fix for highlighting problems with curly brackets in #define (#203577)
-
-* Tue Feb 06 2007 Karsten Hopp <karsten at redhat.com> 7.0.191-2
-- uses ncurses instead of ncursesw
-
-* Tue Feb 06 2007 Karsten Hopp <karsten at redhat.com> 7.0.191-1
-- patchlevel 191
-- clean up spec file for rpmlint
-- drop cvim stuff
-
-* Tue Jan 23 2007 Karsten Hopp <karsten at redhat.com> 7.0.188-3
-- patchlevel 188
-
-* Mon Jan 08 2007 Karsten Hopp <karsten at redhat.com> 7.0.178-3
-- enable filetype plugin
-
-* Thu Dec 14 2006 Karsten Hopp <karsten at redhat.com> 7.0.178-2
-- build vim-minimal with features=small instead of tiny (#219605)
-
-* Tue Dec 12 2006 Karsten Hopp <karsten at redhat.com> 7.0.178-1
-- add vimfiles/after to list of owned directories
-
-* Tue Dec 12 2006 Karsten Hopp <karsten at redhat.com> 7.0.178-1
-- patchlevel 178
-- use macros
-- Resolves: #219154
- add directory /usr/share/vim/vimfiles for plugins
-
-* Thu Dec 7 2006 Jeremy Katz <katzj at redhat.com>
-- rebuild for python 2.5
-
-* Wed Nov 22 2006 Karsten Hopp <karsten at redhat.com> 7.0.168-1
-- patchlevel 168
-- link with ncurses
-
-* Tue Nov 21 2006 Karsten Hopp <karsten at redhat.com> 7.0.164-2
-- patchlevel 164
-
-* Mon Nov 13 2006 Karsten Hopp <karsten at redhat.com> 7.0.162-2
-- fix lang problem in spec file mode
-- use old g:packager variable when set
-
-* Fri Nov 10 2006 Karsten Hopp <karsten at redhat.com> 7.0.162-1
-- patchlevel 162
-
-* Mon Nov 06 2006 Karsten Hopp <karsten at redhat.com> 7.0.158-1
-- patchlevel 158
-
-* Tue Oct 17 2006 Karsten Hopp <karsten at redhat.com> 7.0.139-1
-- patchlevel 139
-- provide vim, vi (#210950)
-
-* Thu Sep 28 2006 Jeremy Katz <katzj at redhat.com> - 7.0.109-3
-- disable vim-spell subpackage as it pushes us over CD boundaries
-
-* Tue Sep 28 2006 Karsten Hopp <karsten at redhat.com> 7.0.109-2
-- fix typo in vimspell.sh (#203178)
-
-* Tue Sep 19 2006 Karsten Hopp <karsten at redhat.com> 7.0.109-1
-- update to patchlevel 109 to fix some redraw problems
-- fix invisible comments in diff mode (#204042)
-
-* Tue Sep 12 2006 Karsten Hopp <karsten at redhat.com> 7.0.100-1
-- Patchlevel 100
-- replace runtime files with newer ones
-
-* Mon Sep 11 2006 Karsten Hopp <karsten at redhat.de> 7.0.099-1
-- Patchlevel 99
-
-* Mon Sep 05 2006 Karsten Hopp <karsten at redhat.de> 7.0.086-1
-- Patchlevel 86
-
-* Mon Sep 04 2006 Karsten Hopp <karsten at redhat.de> 7.0.083-1
-- Patchlevel 83
-
-* Wed Aug 30 2006 Karsten Hopp <karsten at redhat.de> 7.0.076-1
-- Patchlevel 76
-
-* Thu Aug 25 2006 Karsten Hopp <karsten at redhat.de> 7.0.066-2
-- fix vimdiff colors (#204042)
-
-* Thu Aug 24 2006 Karsten Hopp <karsten at redhat.de> 7.0.066-1
-- fix syntax patch (#203798)
-- patchlevel 66
-
-* Wed Aug 17 2006 Karsten Hopp <karsten at redhat.de> 7.0.063-1
-- Patchlevel 63
-
-* Wed Aug 15 2006 Karsten Hopp <karsten at redhat.de> 7.0.053-1
-- Patchlevel 53
-- Buildrequires libXpm-devel
-
-* Wed Aug 09 2006 Karsten Hopp <karsten at redhat.de> 7.0.050-1
-- Patchlevel 50
-
-* Thu Aug 03 2006 Karsten Hopp <karsten at redhat.de> 7.0.042-2
-- clean up spec file
-
-* Mon Jul 24 2006 Karsten Hopp <karsten at redhat.de> 7.0.042-1
-- patchlevel 42
-
-* Wed Jul 20 2006 Karsten Hopp <karsten at redhat.de> 7.0.039-1
-- patchlevel 39
-- allow usage of $VIM variable (#199465)
-
-* Wed Jul 12 2006 Jesse Keating <jkeating at redhat.com> - 2:7.0.035-1.1
-- rebuild
-
-* Tue Jun 27 2006 Karsten Hopp <karsten at redhat.de> 7.0.035-1
-- patchlevel 35
-
-* Wed Jun 21 2006 Karsten Hopp <karsten at redhat.de> 7.0.022-2
-- add binfmt_misc rpc_pipefs to fstypes for better mtab highlighting
-
-* Tue Jun 20 2006 Karsten Hopp <karsten at redhat.de> 7.0.022-1
+* Tue Sep 30 2008 Karsten Hopp <karsten at redhat.com> 7.2.022-1
- patchlevel 22
-* Tue Jun 20 2006 Karsten Hopp <karsten at redhat.de> 7.0.020-1
-- patchlevel 20
+* Mon Sep 08 2008 Karsten Hopp <karsten at redhat.com> 7.2.013-1
+- patchlevel 13
+
+* Mon Aug 25 2008 Karsten Hopp <karsten at redhat.com> 7.2.006-1
+- patchlevel 6
-* Tue Jun 20 2006 Karsten Hopp <karsten at redhat.de> 7.0.019-1
-- patchlevel 19
-- buildrequire autoconf
-
-* Tue May 30 2006 Karsten Hopp <karsten at redhat.de> 7.0.017-1
-- patchlevel 17, although it affects just the Motif version
-- own some directories (#192787)
-
-* Sat May 13 2006 Karsten Hopp <karsten at redhat.de> 7.0.016-1
-- patchlevel 016
-
-* Fri May 12 2006 Karsten Hopp <karsten at redhat.de> 7.0.012-1
-- patchlevel 012
-
-* Thu May 11 2006 Karsten Hopp <karsten at redhat.de> 7.0.010-1
-- patchlevel 010
-
-* Wed May 10 2006 Karsten Hopp <karsten at redhat.de> 7.0.005-2
-- patchlevel 005
-- move older changelogs (<7.0) into a file, no need to keep them
- in the rpm database
-
-* Tue May 09 2006 Karsten Hopp <karsten at redhat.de> 7.0.000-2
-- bump epoch, the buildsystem thinks 7.0.000-2 is older than 7.0.g001-1
- although rpm is quite happy with it.
-
-* Mon May 08 2006 Karsten Hopp <karsten at redhat.de> 7.0.000-1
-- vim-7.0
-- Spell checking support for about 50 languages
-- Intelligent completion for C, HTML, Ruby, Python, PHP, etc.
-- Tab pages, each containing multiple windows
-- Undo branches: never accidentally lose text again
-- Vim script supports Lists and Dictionaries (similar to Python)
-- Vim script profiling
-- Improved Unicode support
-- Highlighting of cursor line, cursor column and matching braces
-- Translated manual pages support.
-- Internal grep; works on all platforms, searches compressed files
-- Browsing remote directories, zip and tar archives
-- Printing multi-byte text
-- find details about the changes since vim-6.4 with :help version7
-
-- fix SE Linux context of temporary (.swp) files (#189968)
-- /bin/vi /vim-minimal is now using /etc/virc to avoid .rpmnew files
- when updating
-
-* Tue May 02 2006 Karsten Hopp <karsten at redhat.de> 7.0.g001-1
-- vim-7.0g BETA
-
-* Fri Apr 28 2006 Karsten Hopp <karsten at redhat.de> 7.0.f001-1
-- vim-7.0f3 BETA
-
-* Thu Apr 20 2006 Karsten Hopp <karsten at redhat.de> 7.0.e001-1
-- vim-7.0e BETA
-
-* Tue Apr 11 2006 Karsten Hopp <karsten at redhat.de> 7.0.d001-1
-- vim-7.0d BETA
-
-* Fri Apr 07 2006 Karsten Hopp <karsten at redhat.de> 7.0c.000-3
-- fix vimrc filename
-
-* Thu Apr 06 2006 Karsten Hopp <karsten at redhat.de> 7.0c.000-2
-- new snapshot
-
-* Tue Apr 04 2006 Karsten Hopp <karsten at redhat.de> 7.0c.000-1
-- vim-7.0c BETA
-
-* Wed Mar 22 2006 Karsten Hopp <karsten at redhat.de> 7.0aa.000-3
-- Rawhide build as vim, opposed to vim7 (prerelease)
-- conflict with older man-pages-{it,fr} packages
-- cleanup lang stuff
-
-* Thu Mar 16 2006 Karsten Hopp <karsten at redhat.de> 7.0aa.000-2
-- make it coexist with vim-6 (temporarily)
-- new CVS snapshot
-
-* Tue Mar 14 2006 Karsten Hopp <karsten at redhat.de> 7.0aa.000-1
-- vim7 pre Release
-- older changelogs available in Changelog.rpm
+* Mon Aug 18 2008 Karsten Hopp <karsten at redhat.com> 7.2.002-1
+- patchlevel 2
+- fix specfile template (#446070)
+- old specfile changelog moved to Changelog.rpm
+
+* Fri Aug 14 2008 Karsten Hopp <karsten at redhat.com> 7.2.000-1
+- vim 7.2
+- drop 330 patches
# vim:nrformats-=octal
--- 7.1.001 DELETED ---
--- 7.1.002 DELETED ---
--- 7.1.003 DELETED ---
--- 7.1.004 DELETED ---
--- 7.1.005 DELETED ---
--- 7.1.006 DELETED ---
--- 7.1.007 DELETED ---
--- 7.1.008 DELETED ---
--- 7.1.009 DELETED ---
--- 7.1.010 DELETED ---
--- 7.1.011 DELETED ---
--- 7.1.012 DELETED ---
--- 7.1.013 DELETED ---
--- 7.1.014 DELETED ---
--- 7.1.015 DELETED ---
--- 7.1.016 DELETED ---
--- 7.1.017 DELETED ---
--- 7.1.018 DELETED ---
--- 7.1.019 DELETED ---
--- 7.1.020 DELETED ---
--- 7.1.021 DELETED ---
--- 7.1.022 DELETED ---
--- 7.1.023 DELETED ---
--- 7.1.024 DELETED ---
--- 7.1.025 DELETED ---
--- 7.1.026 DELETED ---
--- 7.1.027 DELETED ---
--- 7.1.028 DELETED ---
--- 7.1.029 DELETED ---
--- 7.1.030 DELETED ---
--- 7.1.031 DELETED ---
--- 7.1.032 DELETED ---
--- 7.1.033 DELETED ---
--- 7.1.034 DELETED ---
--- 7.1.035 DELETED ---
--- 7.1.036 DELETED ---
--- 7.1.037 DELETED ---
--- 7.1.038 DELETED ---
--- 7.1.039 DELETED ---
--- 7.1.040 DELETED ---
--- 7.1.041 DELETED ---
--- 7.1.042 DELETED ---
--- 7.1.043 DELETED ---
--- 7.1.044 DELETED ---
--- 7.1.045 DELETED ---
--- 7.1.046 DELETED ---
--- 7.1.047 DELETED ---
--- 7.1.048 DELETED ---
--- 7.1.049 DELETED ---
--- 7.1.050 DELETED ---
--- 7.1.051 DELETED ---
--- 7.1.052 DELETED ---
--- 7.1.053 DELETED ---
--- 7.1.054 DELETED ---
--- 7.1.055 DELETED ---
--- 7.1.056 DELETED ---
--- 7.1.057 DELETED ---
--- 7.1.058 DELETED ---
--- 7.1.059 DELETED ---
--- 7.1.060 DELETED ---
--- 7.1.061 DELETED ---
--- 7.1.062 DELETED ---
--- 7.1.063 DELETED ---
--- 7.1.064 DELETED ---
--- 7.1.065 DELETED ---
--- 7.1.066 DELETED ---
--- 7.1.067 DELETED ---
--- 7.1.068 DELETED ---
--- 7.1.069 DELETED ---
--- 7.1.070 DELETED ---
--- 7.1.071 DELETED ---
--- 7.1.072 DELETED ---
--- 7.1.073 DELETED ---
--- 7.1.074 DELETED ---
--- 7.1.075 DELETED ---
--- 7.1.076 DELETED ---
--- 7.1.077 DELETED ---
--- 7.1.078 DELETED ---
--- 7.1.079 DELETED ---
--- 7.1.080 DELETED ---
--- 7.1.081 DELETED ---
--- 7.1.082 DELETED ---
--- 7.1.083 DELETED ---
--- 7.1.084 DELETED ---
--- 7.1.085 DELETED ---
--- 7.1.086 DELETED ---
--- 7.1.087 DELETED ---
--- 7.1.088 DELETED ---
--- 7.1.089 DELETED ---
--- 7.1.090 DELETED ---
--- 7.1.091 DELETED ---
--- 7.1.092 DELETED ---
--- 7.1.093 DELETED ---
--- 7.1.094 DELETED ---
--- 7.1.095 DELETED ---
--- 7.1.096 DELETED ---
--- 7.1.097 DELETED ---
--- 7.1.098 DELETED ---
--- 7.1.099 DELETED ---
--- 7.1.100 DELETED ---
--- 7.1.101 DELETED ---
--- 7.1.102 DELETED ---
--- 7.1.103 DELETED ---
--- 7.1.104 DELETED ---
--- 7.1.105 DELETED ---
--- 7.1.106 DELETED ---
--- 7.1.107 DELETED ---
--- 7.1.108 DELETED ---
--- 7.1.109 DELETED ---
--- 7.1.110 DELETED ---
--- 7.1.111 DELETED ---
--- 7.1.112 DELETED ---
--- 7.1.113 DELETED ---
--- 7.1.114 DELETED ---
--- 7.1.115 DELETED ---
--- 7.1.116 DELETED ---
--- 7.1.117 DELETED ---
--- 7.1.118 DELETED ---
--- 7.1.119 DELETED ---
--- 7.1.120 DELETED ---
--- 7.1.121 DELETED ---
--- 7.1.122 DELETED ---
--- 7.1.123 DELETED ---
--- 7.1.124 DELETED ---
--- 7.1.125 DELETED ---
--- 7.1.126 DELETED ---
--- 7.1.127 DELETED ---
--- 7.1.128 DELETED ---
--- 7.1.129 DELETED ---
--- 7.1.130 DELETED ---
--- 7.1.131 DELETED ---
--- 7.1.132 DELETED ---
--- 7.1.133 DELETED ---
--- 7.1.134 DELETED ---
--- 7.1.135 DELETED ---
--- 7.1.136 DELETED ---
--- 7.1.137 DELETED ---
--- 7.1.138 DELETED ---
--- 7.1.139 DELETED ---
--- 7.1.140 DELETED ---
--- 7.1.141 DELETED ---
--- 7.1.142 DELETED ---
--- 7.1.143 DELETED ---
--- 7.1.144 DELETED ---
--- 7.1.145 DELETED ---
--- 7.1.146 DELETED ---
--- 7.1.147 DELETED ---
--- 7.1.148 DELETED ---
--- 7.1.149 DELETED ---
--- 7.1.150 DELETED ---
--- 7.1.151 DELETED ---
--- 7.1.152 DELETED ---
--- 7.1.153 DELETED ---
--- 7.1.154 DELETED ---
--- 7.1.155 DELETED ---
--- 7.1.156 DELETED ---
--- 7.1.157 DELETED ---
--- 7.1.158 DELETED ---
--- 7.1.159 DELETED ---
--- 7.1.160 DELETED ---
--- 7.1.161 DELETED ---
--- 7.1.162 DELETED ---
--- 7.1.163 DELETED ---
--- 7.1.164 DELETED ---
--- 7.1.165 DELETED ---
--- 7.1.166 DELETED ---
--- 7.1.167 DELETED ---
--- 7.1.168 DELETED ---
--- 7.1.169 DELETED ---
--- 7.1.170 DELETED ---
--- 7.1.171 DELETED ---
--- 7.1.172 DELETED ---
--- 7.1.173 DELETED ---
--- 7.1.174 DELETED ---
--- 7.1.175 DELETED ---
--- 7.1.176 DELETED ---
--- 7.1.177 DELETED ---
--- 7.1.178 DELETED ---
--- 7.1.179 DELETED ---
--- 7.1.180 DELETED ---
--- 7.1.181 DELETED ---
--- 7.1.182 DELETED ---
--- 7.1.183 DELETED ---
--- 7.1.184 DELETED ---
--- 7.1.185 DELETED ---
--- 7.1.186 DELETED ---
--- 7.1.187 DELETED ---
--- 7.1.188 DELETED ---
--- 7.1.189 DELETED ---
--- 7.1.190 DELETED ---
--- 7.1.191 DELETED ---
--- 7.1.192 DELETED ---
--- 7.1.193 DELETED ---
--- 7.1.194 DELETED ---
--- 7.1.195 DELETED ---
--- 7.1.196 DELETED ---
--- 7.1.197 DELETED ---
--- 7.1.198 DELETED ---
--- 7.1.199 DELETED ---
--- 7.1.200 DELETED ---
--- 7.1.201 DELETED ---
--- 7.1.202 DELETED ---
--- 7.1.203 DELETED ---
--- 7.1.204 DELETED ---
--- 7.1.205 DELETED ---
--- 7.1.206 DELETED ---
--- 7.1.207 DELETED ---
--- 7.1.208 DELETED ---
--- 7.1.209 DELETED ---
--- 7.1.210 DELETED ---
--- 7.1.211 DELETED ---
--- 7.1.212 DELETED ---
--- 7.1.213 DELETED ---
--- 7.1.214 DELETED ---
--- 7.1.215 DELETED ---
--- 7.1.216 DELETED ---
--- 7.1.217 DELETED ---
--- 7.1.218 DELETED ---
--- 7.1.219 DELETED ---
--- 7.1.220 DELETED ---
--- 7.1.221 DELETED ---
--- 7.1.222 DELETED ---
--- 7.1.223 DELETED ---
--- 7.1.224 DELETED ---
--- 7.1.225 DELETED ---
--- 7.1.226 DELETED ---
--- 7.1.227 DELETED ---
--- 7.1.228 DELETED ---
--- 7.1.229 DELETED ---
--- 7.1.230 DELETED ---
--- 7.1.231 DELETED ---
--- 7.1.232 DELETED ---
--- 7.1.233 DELETED ---
--- 7.1.234 DELETED ---
--- 7.1.235 DELETED ---
--- 7.1.236 DELETED ---
--- 7.1.237 DELETED ---
--- 7.1.238 DELETED ---
--- 7.1.239 DELETED ---
--- 7.1.240 DELETED ---
--- 7.1.241 DELETED ---
--- 7.1.242 DELETED ---
--- 7.1.243 DELETED ---
--- 7.1.244 DELETED ---
--- 7.1.245 DELETED ---
--- 7.1.246 DELETED ---
--- 7.1.247 DELETED ---
--- 7.1.248 DELETED ---
--- 7.1.249 DELETED ---
--- 7.1.250 DELETED ---
--- 7.1.251 DELETED ---
--- 7.1.252 DELETED ---
--- 7.1.253 DELETED ---
--- 7.1.254 DELETED ---
--- 7.1.255 DELETED ---
--- 7.1.256 DELETED ---
--- 7.1.257 DELETED ---
--- 7.1.258 DELETED ---
--- 7.1.259 DELETED ---
--- 7.1.260 DELETED ---
--- 7.1.261 DELETED ---
--- 7.1.262 DELETED ---
--- 7.1.263 DELETED ---
--- 7.1.264 DELETED ---
--- 7.1.265 DELETED ---
--- 7.1.266 DELETED ---
--- 7.1.267 DELETED ---
--- 7.1.268 DELETED ---
--- 7.1.269 DELETED ---
--- 7.1.270 DELETED ---
--- 7.1.271 DELETED ---
--- 7.1.272 DELETED ---
--- 7.1.273 DELETED ---
--- 7.1.274 DELETED ---
--- 7.1.275 DELETED ---
--- 7.1.276 DELETED ---
--- 7.1.277 DELETED ---
--- 7.1.278 DELETED ---
--- 7.1.279 DELETED ---
--- 7.1.280 DELETED ---
--- 7.1.281 DELETED ---
--- 7.1.282 DELETED ---
--- 7.1.283 DELETED ---
--- 7.1.284 DELETED ---
--- 7.1.285 DELETED ---
--- 7.1.286 DELETED ---
--- 7.1.287 DELETED ---
--- 7.1.288 DELETED ---
--- 7.1.289 DELETED ---
--- 7.1.290 DELETED ---
--- 7.1.291 DELETED ---
--- 7.1.292 DELETED ---
--- 7.1.293 DELETED ---
--- vim-6.4-cvim.patch DELETED ---
--- vim-6.4-lib64.patch DELETED ---
--- vim-7.0-fstabsyntax.patch DELETED ---
--- vim-7.0-vimspelltypo.patch DELETED ---
--- vim-7.1-ada.patch DELETED ---
--- vim-7.1-erlang.patch DELETED ---
--- vim-selinux.patch DELETED ---
--- vim-selinux2.patch DELETED ---
More information about the fedora-extras-commits
mailing list