[PATCH] more-prompt: PageDown should scroll an entire screen back, not only a half

2009-02-17 Fir de Conversatie Markus Heidelberg

---
 src/message.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/message.c b/src/message.c
index e0f2897..1cb7344 100644
--- a/src/message.c
+++ b/src/message.c
@@ -2504,7 +2504,6 @@ do_more_prompt(typed_char)
break;
 
case 'u':   /* Up half a page */
-   case K_PAGEUP:
scroll = -(Rows / 2);
break;
 
@@ -2513,6 +2512,7 @@ do_more_prompt(typed_char)
break;
 
case 'b':   /* one page back */
+   case K_PAGEUP:
scroll = -(Rows - 1);
break;
 
-- 
1.6.2.rc0.93.g1228

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



[PATCH] more-prompt: add 'f' for scrolling back a screen

2009-02-17 Fir de Conversatie Markus Heidelberg
After reaching the end of the more prompt, hitting SPACE jumps out of
it. Add 'f' to avoid this problem and for consistency with 'b' in
scroll down a screen.

This also changes the help message to contain f instead of SPACE,
I'm not sure about this.
This change also adds a missing leading Space for fr.po and no.po and
missing trailing spaces for most of the other languages.


--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---

 runtime/doc/message.txt |4 ++--
 src/message.c   |3 ++-
 src/po/ca.po|4 ++--
 src/po/de.po|4 ++--
 src/po/eo.po|4 ++--
 src/po/fi.po|4 ++--
 src/po/fr.po|4 ++--
 src/po/ga.po|4 ++--
 src/po/it.po|4 ++--
 src/po/ja.po|4 ++--
 src/po/ja.sjis.po   |4 ++--
 src/po/no.po|4 ++--
 src/po/pl.UTF-8.po  |4 ++--
 src/po/pl.cp1250.po |4 ++--
 src/po/pl.po|4 ++--
 src/po/pt_BR.po |4 ++--
 src/po/sk.cp1250.po |4 ++--
 src/po/sk.po|4 ++--
 src/po/sv.po|4 ++--
 src/po/uk.cp1251.po |4 ++--
 src/po/uk.po|4 ++--
 src/po/zh_CN.UTF-8.po   |4 ++--
 src/po/zh_CN.cp936.po   |4 ++--
 src/po/zh_CN.po |4 ++--
 24 files changed, 48 insertions(+), 47 deletions(-)

diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index dc772c7..12864f1 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -786,7 +786,7 @@ group.
 
 		*more-prompt* *pager*  
   -- More --
-  -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit
+  -- More -- f/d/j: screen/page/line down, b/u/k: up, q: quit
 
 This message is given when the screen is filled with messages.  It is only
 given when the 'more' option is on.  It is highlighted with the |hl-MoreMsg|
@@ -795,7 +795,7 @@ group.
 Type	effect ~
  CR or NL or j or Down	one more line
  d	down a page (half a screen)
- Space or PageDown		down a screen
+ Space or f or PageDown		down a screen
  G	down all the way, until the hit-enter
 	prompt
 
diff --git a/src/message.c b/src/message.c
index e0f2897..8dbfd8e 100644
--- a/src/message.c
+++ b/src/message.c
@@ -2517,6 +2517,7 @@ do_more_prompt(typed_char)
 	break;
 
 	case ' ':		/* one extra page */
+	case 'f':
 	case K_PAGEDOWN:
 	case K_LEFTMOUSE:
 	scroll = Rows - 1;
@@ -2840,7 +2841,7 @@ msg_moremsg(full)
 screen_puts(s, (int)Rows - 1, 0, attr);
 if (full)
 	screen_puts((char_u *)
-		_( SPACE/d/j: screen/page/line down, b/u/k: up, q: quit ),
+		_( f/d/j: screen/page/line down, b/u/k: up, q: quit ),
 		(int)Rows - 1, vim_strsize(s), attr);
 }
 
diff --git a/src/po/ca.po b/src/po/ca.po
index a4d80c2..1cb38da 100644
--- a/src/po/ca.po
+++ b/src/po/ca.po
@@ -3724,8 +3724,8 @@ msgstr %s l
 msgid -- More --
 msgstr -- Més --
 
-msgid  SPACE/d/j: screen/page/line down, b/u/k: up, q: quit 
-msgstr  ESPAI/d/j: pantalla/pàgina/línia avall, b/u/k: amunt, q: sortir
+msgid  f/d/j: screen/page/line down, b/u/k: up, q: quit 
+msgstr  f/d/j: pantalla/pàgina/línia avall, b/u/k: amunt, q: sortir 
 
 msgid Question
 msgstr Pregunta
diff --git a/src/po/de.po b/src/po/de.po
index 1b3a0d7..f5c5270 100644
--- a/src/po/de.po
+++ b/src/po/de.po
@@ -3602,8 +3602,8 @@ msgstr %s Zeile %ld
 msgid -- More --
 msgstr -- Mehr --
 
-msgid  SPACE/d/j: screen/page/line down, b/u/k: up, q: quit 
-msgstr  LEERZEICHEN/d/j: Seite/halbe Seite/Zeile vorwärts, b/u/k: rückwärts, q: Ende
+msgid  f/d/j: screen/page/line down, b/u/k: up, q: quit 
+msgstr  f/d/j: Seite/halbe Seite/Zeile vorwärts, b/u/k: rückwärts, q: Ende 
 
 msgid Question
 msgstr Frage
diff --git a/src/po/eo.po b/src/po/eo.po
index 78e1933..a871435 100644
--- a/src/po/eo.po
+++ b/src/po/eo.po
@@ -3811,8 +3811,8 @@ msgstr %s linio %ld
 msgid -- More --
 msgstr -- Pli --
 
-msgid  SPACE/d/j: screen/page/line down, b/u/k: up, q: quit 
-msgstr  SPACETO/d/j: ekrano/paĝo/sub linio, b/u/k: supre, q: eliri 
+msgid  f/d/j: screen/page/line down, b/u/k: up, q: quit 
+msgstr  f/d/j: ekrano/paĝo/sub linio, b/u/k: supre, q: eliri 
 
 msgid Question
 msgstr Demando
diff --git a/src/po/fi.po b/src/po/fi.po
index 8e4c8f1..7eb7892 100644
--- a/src/po/fi.po
+++ b/src/po/fi.po
@@ -3792,8 +3792,8 @@ msgstr %s rivi %ld
 msgid -- More --
 msgstr -- Lisää --
 
-msgid  SPACE/d/j: screen/page/line down, b/u/k: up, q: quit 
-msgstr  SPACE/d/j: ruutu/sivu/rivi alas, b/u/k: ylös, q: lopeta
+msgid  f/d/j: screen/page/line down, b/u/k: up, q: quit 
+msgstr  f/d/j: ruutu/sivu/rivi alas, b/u/k: ylös, q: lopeta 
 
 msgid Question
 msgstr Kysymys
diff --git a/src/po/fr.po b/src/po/fr.po
index 7d163eb..055b339 100644
--- a/src/po/fr.po
+++ b/src/po/fr.po
@@ -4127,9 +4127,9 @@ msgstr %s, ligne %ld
 

Re: [PATCH] more-prompt: add 'f' for scrolling back a screen

2009-02-17 Fir de Conversatie Markus Heidelberg

Markus Heidelberg, 17.02.2009:
 After reaching the end of the more prompt, hitting SPACE jumps out of
 it. Add 'f' to avoid this problem and for consistency with 'b' in
 scroll down a screen.

Of course here it should be scroll back a screen and in the subject
scrolling down a screen.

Markus


--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



[PATCH] tips.txt: synchronize the order in the TOC with the order of the content

2009-02-17 Fir de Conversatie Markus Heidelberg

---
 runtime/doc/tips.txt |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index fa03236..ea108b7 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -26,8 +26,8 @@ Change a name in multiple files   
|change-name|
 Speeding up external commands  |speed-up|
 Useful mappings|useful-mappings|
 Compressing the help files |gzip-helpfile|
-Hex editing|hex-editing|
 Executing shell commands in a window   |shell-window|
+Hex editing|hex-editing|
 Using  notation in autocommands  |autocmd-|
 Highlighting matching parens   |match-parens|
 
-- 
1.6.2.rc0.93.g1228

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Crash caused by :call substitute('', '\(.\@=\)*', '\=submatch(1)', '')

2009-02-17 Fir de Conversatie Yukihiro Nakadaira

This command causes crash.

:call substitute('', '\(.\@=\)*', '\=submatch(1)', '')

Here is backtrace.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb708fac0 (LWP 23440)]
0xb73f9939 in strncpy () from /lib/tls/i686/cmov/libc.so.6
(gdb) backtrace
#0  0xb73f9939 in strncpy () from /lib/tls/i686/cmov/libc.so.6
#1  0x0811df83 in vim_strnsave (string=0x0, len=165643352) at 
/usr/include/bits/string3.h:122
#2  0x08159545 in reg_submatch (no=1) at regexp.c:7287
#3  0x08092808 in f_submatch (argvars=0xbfafe59c, rettv=0xbfafeaf0) at 
eval.c:16552
#4  0x0809ddd0 in call_func (name=0x9df833a submatch, len=value optimized 
out, rettv=0xbfafeaf0,
argcount=1,
argvars=0xbfafe59c, firstline=1, lastline=1, doesrange=0xbfafe784, 
evaluate=1, selfdict=0x0) at
eval.c:8098
#5  0x080a14bc in get_func_tv (name=0x9df833a submatch, len=8, 
rettv=0xbfafeaf0, arg=0xbfafea98,
firstline=1, lastline=1,
doesrange=0xbfafe784, evaluate=1, selfdict=0x0) at eval.c:7916
#6  0x0809f77a in eval7 (arg=0xbfafea98, rettv=0xbfafeaf0, evaluate=1, 
want_string=0) at eval.c:5008
#7  0x080a00e5 in eval6 (arg=0xbfafea98, rettv=0xad052007, evaluate=0, 
want_string=0) at eval.c:4675
#8  0x080a035f in eval5 (arg=0xbfafea98, rettv=0xad052007, evaluate=0) at 
eval.c:4491
#9  0x080a06c2 in eval4 (arg=0xbfafea98, rettv=0xad052007, evaluate=0) at 
eval.c:4186
#10 0x080a0ffc in eval3 (arg=0x277e116, rettv=0xad052007, evaluate=0) at 
eval.c:4098
#11 0x080a112d in eval1 (arg=0x277e116, rettv=0xad052007, evaluate=0) at 
eval.c:4027
#12 0x080a235e in eval0 (arg=0x9df833a submatch, rettv=0xbfafeaf0, 
nextcmd=0x0, evaluate=1) at
eval.c:3909
#13 0x080a271d in eval_to_string (arg=0x9df833a submatch, nextcmd=0x0, 
convert=1) at eval.c:1290
#14 0x0815a2ee in vim_regsub_both (source=0x9df8338 \\=submatch, 
dest=0x9df8458 , copy=0,
magic=1, backslash=0)
at regexp.c:6946
#15 0x0808d141 in do_string_sub (str=0x9df8458 , pat=0x9df8468 
\\(.\\@=\\)*, sub=0x9df8338
\\=submatch, flags=0x9df8350 )
at eval.c:22796
#16 0x0808e95c in f_substitute (argvars=0xbfafed7c, rettv=0xbfafeed4) at 
eval.c:16577
#17 0x0809ddd0 in call_func (name=0x9ded770 substitute, len=value optimized 
out,
rettv=0xbfafeed4, argcount=4,
argvars=0xbfafed7c, firstline=1, lastline=1, doesrange=0xbfafeee0, 
evaluate=1, selfdict=0x0) at
eval.c:8098
#18 0x080a14bc in get_func_tv (name=0x9ded770 substitute, len=10, 
rettv=0xbfafeed4,
arg=0xbfafeee8, firstline=1, lastline=1,
doesrange=0xbfafeee0, evaluate=1, selfdict=0x0) at eval.c:7916
#19 0x080a6d09 in ex_call (eap=0xbfafefc8) at eval.c:3331
#20 0x080c5f47 in do_one_cmd (cmdlinep=0xbfaff140, sourcing=0, 
cstack=0xbfaff144, fgetline=0x80d5230
getexline, cookie=0x0)
at ex_docmd.c:2622
#21 0x080c436a in do_cmdline (cmdline=0x0, getline=0x80d5230 getexline, 
cookie=0x0, flags=0) at
ex_docmd.c:1096
#22 0x08133430 in nv_colon (cap=0xbfaff4c8) at normal.c:5233
#23 0x08135130 in normal_cmd (oap=0xbfaff52c, toplevel=1) at normal.c:1200
#24 0x080f5367 in main_loop (cmdwin=0, noexmode=0) at main.c:1180
#25 0x080f8669 in main (argc=Cannot access memory at address 0x0
) at main.c:939


-- 
Yukihiro Nakadaira - yukihiro.nakada...@gmail.com

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: Crash caused by :call substitute('', '\(.\@=\)*', '\=submatch(1)', '')

2009-02-17 Fir de Conversatie Andreas Bernauer



Yukihiro Nakadaira wrote:
 This command causes crash.
 
 :call substitute('', '\(.\@=\)*', '\=submatch(1)', '')
 

Confirmed for vim 7.2.108
(called as vim -u NONE)

-- 
Andreas.

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: PATCH: dynamically load Python on Solaris

2009-02-17 Fir de Conversatie björn

Hi Danek,

2009/2/15 Danek Duvall:

 And further down that road would be to experiment with whether multiple
 versions of Python can be loaded into memory at the same time.  If that's
 the case, then you could have different scripts running with different
 versions in the same vim session.  I don't know how useful that would be in
 practice, though.

Hi Danek,

This would be very useful for the Mac OS X port of Vim (MacVim) since
10.4 comes with Python 2.3 and 10.5 ships with Python 2.5.  At the
moment I link MacVim against 2.3 so that it works on both 10.4 and
10.5 but several users have requested 2.5.  I actually implemented
dynamic loading of Python for OS X but since there are Python API
changes between 2.3 and 2.5 you get a warning when trying to run on
2.3 if the binary was built using 2.5 (even though the library itself
is successfullly loaded dynamically).

Anyway, if you get around to implementing this I would be very eager
to test it and include it in MacVim.  By the way, how exactly do you
propose to do this?  Looking at your latest patch I assume you'd build
one if_python module for each version and then decide which one to
load when python is first used?

Björn

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: PATCH: dynamically load Python on Solaris

2009-02-17 Fir de Conversatie Danek Duvall

björn wrote:

 2009/2/15 Danek Duvall:
 
  And further down that road would be to experiment with whether multiple
  versions of Python can be loaded into memory at the same time.  If that's
  the case, then you could have different scripts running with different
  versions in the same vim session.  I don't know how useful that would be in
  practice, though.
 
 This would be very useful for the Mac OS X port of Vim (MacVim) since
 10.4 comes with Python 2.3 and 10.5 ships with Python 2.5.  At the
 moment I link MacVim against 2.3 so that it works on both 10.4 and
 10.5 but several users have requested 2.5.

So that speaks for having multiple versions available, but not necessarily
for having them all co-resident.

 I actually implemented dynamic loading of Python for OS X but since there
 are Python API changes between 2.3 and 2.5 you get a warning when trying
 to run on 2.3 if the binary was built using 2.5 (even though the library
 itself is successfullly loaded dynamically).

Yup, I saw that as well when playing around.

 By the way, how exactly do you propose to do this?  Looking at your
 latest patch I assume you'd build one if_python module for each version
 and then decide which one to load when python is first used?

That's the idea.  I'm just not sure how that decision should be made.  I
guess I'm looking for some guidance from Bram, though not being terribly
familiar with the vim development model, I don't know if I should be
looking elsewhere for that guidance.

At any rate, if I were to hack something together right now, I'd probably
introduce a new variable that would let you set the order:

set pythonversions=2.3,2.4,2.5

with tags of oldest and newest available as well.  The first module
matching an element in the series that loaded properly would be the one
used, defaulting to either oldest or newest if the variable isn't set (or
if none of them match?).  The modules would need to be named consistently
-- if_pythonver.so -- and in a collatable order, though I suppose I could
always try to query the module for the definitive version if the collation
proves too difficult.

But there might be some pitfalls behind that.  Suggestions and guidance are
welcomed.

Thanks,
Danek

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: Crash caused by :call substitute('', '\(.\@=\)*', '\=submatch(1)', '')

2009-02-17 Fir de Conversatie Ben Fritz



On Feb 17, 9:47 am, Andreas Bernauer vim-de...@lysium.de wrote:
 Yukihiro Nakadaira wrote:
  This command causes crash.

  :call substitute('', '\(.\@=\)*', '\=submatch(1)', '')

 Confirmed for vim 7.2.108
 (called as vim -u NONE)


Also on Windows gvim, 7.2.101.
--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



if {expr1}

2009-02-17 Fir de Conversatie Larson, DavidX S

Hello all,

I was working on my script when I ran across this unexpected behavior with the 
if statement. The doc says:

:if {expr1} *:if* *:endif* *:en* *E171* *E579* *E580*
:en[dif]Execute the commands until the next matching :else
or :endif if {expr1} evaluates to non-zero.

I thought that meant that if {expr1} evaluated to anything other than zero 
(such as a string) then the if statement passes, but it doesn't. It's simple 
enough to reproduce:

  if atoehu
echom pass
  else
echom fail
  endif

Always echo's: fail.

Is the bug in the doc, vim, or in my head? I have version 7.2.106.

Cheers,
David

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: PATCH: dynamically load Python on Solaris

2009-02-17 Fir de Conversatie björn

2009/2/17 Danek Duvall:

 björn wrote:

 2009/2/15 Danek Duvall:
 
  And further down that road would be to experiment with whether multiple
  versions of Python can be loaded into memory at the same time.  If that's
  the case, then you could have different scripts running with different
  versions in the same vim session.  I don't know how useful that would be in
  practice, though.

 This would be very useful for the Mac OS X port of Vim (MacVim) since
 10.4 comes with Python 2.3 and 10.5 ships with Python 2.5.  At the
 moment I link MacVim against 2.3 so that it works on both 10.4 and
 10.5 but several users have requested 2.5.

 So that speaks for having multiple versions available, but not necessarily
 for having them all co-resident.

Yes that is all I am after -- I can't see any particular use for
having two or more co-resident.  (?)

 By the way, how exactly do you propose to do this?  Looking at your
 latest patch I assume you'd build one if_python module for each version
 and then decide which one to load when python is first used?

 That's the idea.  I'm just not sure how that decision should be made.  I
 guess I'm looking for some guidance from Bram, though not being terribly
 familiar with the vim development model, I don't know if I should be
 looking elsewhere for that guidance.

 At any rate, if I were to hack something together right now, I'd probably
 introduce a new variable that would let you set the order:

set pythonversions=2.3,2.4,2.5

 with tags of oldest and newest available as well.  The first module
 matching an element in the series that loaded properly would be the one
 used, defaulting to either oldest or newest if the variable isn't set (or
 if none of them match?).  The modules would need to be named consistently
 -- if_pythonver.so -- and in a collatable order, though I suppose I could
 always try to query the module for the definitive version if the collation
 proves too difficult.

 But there might be some pitfalls behind that.  Suggestions and guidance are
 welcomed.

I think this is overkill.  Why not just see which modules are
installed and try loading from newest to oldest?  Well, maybe it isn't
that simple since loading will probably work as long as the module is
present even if the matching python version is not installed.  But it
provides pretty much the same functionality as the option you
suggested (the user simply has to make sure that only the right module
is installed) and it means less code.  I'm pretty new to Vim
development myself, but it seems the less new options you introduce
the greater the chance that your patch will be accepted.

Anyway, as far as OS X is concerned the best way would be if the most
recent version of python installed was automatically used (judging
from the requests I've had from users) without the need of user
involvement.  Would this be possible?  (Assuming the user has the
matching if_python modules installed...in the case of OS X these would
be distributed with the Vim binary inside the so-called application
bundle.)

Björn

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: if {expr1}

2009-02-17 Fir de Conversatie Matt Wozniski

On 2/17/09, Larson, DavidX S wrote:

  Hello all,

  I was working on my script when I ran across this unexpected behavior
  with the if statement. The doc says:

  :if {expr1} *:if* *:endif* *:en* *E171* *E579* *E580*
  :en[dif]Execute the commands until the next matching :else
 or :endif if {expr1} evaluates to non-zero.

  I thought that meant that if {expr1} evaluated to anything other than
  zero (such as a string) then the if statement passes, but it
  doesn't. It's simple enough to reproduce:

It does - but a string, evaluated in a numeric context, evaluates to
zero, unless the string can be interpretted as a number.

:echo abcd / 1
0

:echo 256 / 1
256

:echo 0x10 / 1
16

:echo 010 / 1
8

:echo atoehu / 1
0

   if atoehu
 echom pass
   else
 echom fail
   endif

  Always echo's: fail.

Right.  Because atoehu, as a Number, is 0.

  Is the bug in the doc, vim, or in my head? I have version 7.2.106.

~Matt

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: PATCH: dynamically load Python on Solaris

2009-02-17 Fir de Conversatie Danek Duvall

On Tue, Feb 17, 2009 at 07:32:35PM +0100, björn wrote:

 Yes that is all I am after -- I can't see any particular use for
 having two or more co-resident.  (?)

The use case would be if you had a script that could only run with 2.3 and
another that could only run with 2.6, and you wanted to use both in the
same vim process.  I agree that it's all that worth worrying about, though.

 I think this is overkill.  Why not just see which modules are
 installed and try loading from newest to oldest?

Works for me.  I can always change it later to be fancier if people find
the simple method to not be enough.

 Well, maybe it isn't that simple since loading will probably work as long
 as the module is present even if the matching python version is not
 installed.

That'll probably depend on the features of the dynamic linker.  On Solaris,
at least, the module will fail to load if a dependency it has isn't there.

I may not get to it before this weekend, but I'll post another patch as
soon as I have it.  In the meantime, if you have a chance to try my latest
patch out on OS X, I'd be curious to know if it works there.

Thanks,
Danek

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: PATCH: dynamically load Python on Solaris

2009-02-17 Fir de Conversatie björn

2009/2/17 Danek Duvall:

 I may not get to it before this weekend, but I'll post another patch as
 soon as I have it.  In the meantime, if you have a chance to try my latest
 patch out on OS X, I'd be curious to know if it works there.

The following bit of configure.in looked a bit strange, so I changed
it.  No idea what that special if for MACOSX does though.

diff --git a/src/configure.in b/src/configure.in
index b623c6f..bd32b12 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -742,16 +742,12 @@ eof
fi
PYTHON_SRC=if_python.c
dnl For Mac OSX 10.2 config.o is included in the Python library.
-   if test x$MACOSX = xyes; then
- PYTHON_OBJ=objects/if_python.o
-   else
- if test ${enable_pythoninterp} = dynamic; then
-   PYTHON_OBJ=objects/if_python_stub.o
-   PYTHON_SO_OBJ=objects/if_python.o objects/py_config.o
- else
-   PYTHON_OBJ=objects/if_python_stub.o objects/if_python.o objects/py_
- fi
-   fi
+if test ${enable_pythoninterp} = dynamic; then
+  PYTHON_OBJ=objects/if_python_stub.o
+  PYTHON_SO_OBJ=objects/if_python.o objects/py_config.o
+else
+  PYTHON_OBJ=objects/if_python_stub.o objects/if_python.o objects/py_c
+fi
if test ${vi_cv_var_python_version} = 1.4; then
   PYTHON_OBJ=$PYTHON_OBJ objects/py_getpath.o
fi

With this change I did regenerated the configure script and tried
building but something's up but I haven't got time to investigate
right now.  Probably just some flag to the compiler/linker that is
missing...but I get the following errors:

gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall
-Wno-unknown-pragmas -pipe -I. -Iproto -DMACOS_X_UNIX -no-cpp-precomp
-I/Developer/Headers/FlatCarbon  -g -O -D_FORTIFY_SOURCE=1
-DDYNAMIC_PYTHON
-I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
-Kpic -o objects/if_python.o if_python.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall
-Wno-unknown-pragmas -pipe -I. -Iproto -DMACOS_X_UNIX -no-cpp-precomp
-I/Developer/Headers/FlatCarbon  -g -O -D_FORTIFY_SOURCE=1
-DDYNAMIC_PYTHON-o objects/py_config.o
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config/config.c
\

-I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
-I/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config
-DHAVE_CONFIG_H -DNO_MAIN
gcc  -o if_python.so objects/if_python.o objects/py_config.o
Undefined symbols:
  _initimp, referenced from:
  __PyImport_Inittab in py_config.o
  _ml_get_buf, referenced from:
  _RBSlice in if_python.o
  _GetBufferLine in if_python.o
  _u_savesub, referenced from:
  _SetBufferLine in if_python.o
  _PyInt_Type, referenced from:
  _PyInt_Type$non_lazy_ptr in if_python.o
  _ml_append, referenced from:
  _RBAssSlice in if_python.o
  _RBAppend in if_python.o
  _RBAppend in if_python.o
  _win_setwidth, referenced from:
  _WindowSetattr in if_python.o
  _init_symtable, referenced from:
  __PyImport_Inittab in py_config.o
  _curwin, referenced from:
  _curwin$non_lazy_ptr in if_python.o

-snip-

I'll look into it later on, but the compilation at least worked
fine...I just have to get the dynamic library to work (any ideas?).

Björn

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: [PATCH] more-prompt: add 'f' for scrolling back a screen

2009-02-17 Fir de Conversatie Markus Heidelberg

Bram Moolenaar, 18.02.2009:
 
 Markus Heidelberg wrote:
 
  After reaching the end of the more prompt, hitting SPACE jumps out of
  it. Add 'f' to avoid this problem and for consistency with 'b' in
  scroll down a screen.
  
  This also changes the help message to contain f instead of SPACE,
  I'm not sure about this.
  This change also adds a missing leading Space for fr.po and no.po and
  missing trailing spaces for most of the other languages.
 
 I think the message should remain using SPACE, since that is the
 traditional way of going forward.

OK.

 I'm actually not sure if adding f to go a screen down is helpful.

For me at least it is. f is more universal, I'm used to use f in
less/man and Ctrl-F in Vim. And as mentioned above, that SPACE closes
the more prompt: I don't want to accidentally press the key once to
often and get bounced out of the pager, which can especially happen when
scrolling fast. I don't think this is user-friendly and with supporting
f it could be avoided.

Also, my SPACE key makes more noise :)

Markus


--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: [PATCH] more-prompt: add 'f' for scrolling back a screen

2009-02-17 Fir de Conversatie Matt Wozniski

On Tue, Feb 17, 2009 at 9:19 PM, Markus Heidelberg wrote:

 Bram Moolenaar, 18.02.2009:

 Markus Heidelberg wrote:

  After reaching the end of the more prompt, hitting SPACE jumps out of
  it. Add 'f' to avoid this problem and for consistency with 'b' in
  scroll down a screen.
 
  This also changes the help message to contain f instead of SPACE,
  I'm not sure about this.
  This change also adds a missing leading Space for fr.po and no.po and
  missing trailing spaces for most of the other languages.

 I think the message should remain using SPACE, since that is the
 traditional way of going forward.

 OK.

I agree with this, leave the message as is.

 I'm actually not sure if adding f to go a screen down is helpful.

 For me at least it is. f is more universal, I'm used to use f in
 less/man and Ctrl-F in Vim. And as mentioned above, that SPACE closes
 the more prompt: I don't want to accidentally press the key once to
 often and get bounced out of the pager, which can especially happen when
 scrolling fast. I don't think this is user-friendly and with supporting
 f it could be avoided.

It definitely is helpful, both for symmetry with other vim commands
(C-f and C-b in normal mode, for instance), and for symmetry with
other programs.  Less to learn is always a nice thing.  And, given
that space leaves the more prompt (and no one will want that to
change), this does provide a nice alternative.  I'm definitely in
favor of this change.

 Also, my SPACE key makes more noise :)

:-)

~Matt

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Race condition in vim_tempname() on Windows

2009-02-17 Fir de Conversatie Matt Wozniski

src/fileio.c : vim_tempname() contains these lines:

if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
return NULL;
/* GetTempFileName() will create the file, we don't want that */
(void)DeleteFile(itmp);

Is this really right?  Is there any reason to call DeleteFile() here?
On a quick glance, it seems that everyone who gets a name back is just
doing an mch_open(tempname, w) on it, which doesn't care whether or
not the file exists already.

I ask because this seems to be causing a race condition:
GetTempFileName() checks if a file exists, finds a name that doesn't
exist, creates it, and returns the name back to the caller.  It
creates it so that future calls to GetTempFileName() won't choose the
same file, since it now exists.  But, deleting it before being done
with it introduces a race condition: vim calls GetTempFileName(), then
DeleteFile(), then another process calls GetTempFileName(), and now
vim has the path to a file that didn't exist when it asked for a
unique, non-existant file, but exists now, and is no longer safe for
vim to use.

~Matt

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---