Why did we limit the command window history length?
In this post: You can hit enter anywhere on the line in the command window, I talked about the command window history.
Daniel asked why the size of the history seems to have a limit of around 256K in VFP9, but no limit in VFP7 (or VFP8).
It was limited to fix this bug report from a customer Oct 2003.
Things to notice about the bug report:
- It’s just code that can be copy/pasted/run with no fuss
- It’s a bare minimum of code: not multimegabyte files of code (A 4 GigHz processor can execute about a billion instructions per second. Which one of those billions has the problem?)
- It clearly demonstrates the issue
- It says what Observed, and Expected behaviors are
(1) Run these commands from a new .PRG:
COPY FILE HOME(7) + [_COMMAND.PRG] TO HOME(7) + [_COMMAND.mine]
STRTOFILE(REPLICATE([MODIFY COMMAND test]+CHR(13)+ ;
[MODIFY FORM test]+CHR(13)+[? VERSION()]+CHR(13), ;
199999),HOME(7) + [_COMMAND.BAK])
o = NEWOBJECT([_shellexecute],HOME() + [\ffc\_environ.vcx])
o.shellexecute(HOME(7),HOME(7),[])
(2) You now have a Windows Explorer window open to your user data directory. Delete _COMMAND.PRG and then rename _COMMAND.BAK to COMMAND.PRG.
(4) Open VFP again...
=== OBSERVED ===
VFP takes a long time to start and when it does, it is using about 325megs of memory.
=== EXPECTED ===
Either a linearly increasing memory usage or limiting _command.prg to a sensible size like 1 MB.
=== COMMENTS ===
To clean up, exit VFP, delete _COMMAND.PRG and rename _command.MINE to _COMMAND.PRG
Comments
- Anonymous
January 27, 2006
Hello Calvin,
When using the Environment Manager Task Pane in VFP9 SP1, how can I get the command window to reload the previous command set when changing from one project to another. Each project is stored in a separate folder with its own foxuser.dbf.
Thanks,
Kent - Anonymous
January 27, 2006
Hi Kent, Unfortunately, the Command window contents are initialized only when the Command window is first shown. You could perhaps use a project hook to change _command.prg contents and shut/down/restart VFP