Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2005-12

command line editing, history, etc.

3 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Alan Mead

I have a command line utility that would really benefit from command line editing... is there a simple way to add this kind of readline-like behavior to a FreePascal program? I would appreciate the functionality on Linux but I might also use the program on Windows.

-Alan

Jeff Pohlmeyer
Show quoted text 5 lines
I have a command line utility that would really benefit from command line editing... is there a simple way to add this kind of readline-like behavior to a FreePascal program? I would appreciate the functionality on Linux but I might also use the program on Windows.

This works for Linux ( and possibly Cygwin ) if you have the libs...

program histdemo;
{$LINKLIB ncurses}
{$LINKLIB readline}
{$LINKLIB history}
{$LINKLIB c}
uses strings;
function readline(prompt: pchar):pchar; cdecl; external 'readline'
name 'readline';
procedure using_history(); cdecl; external 'history' name 'using_history';
procedure add_history(s:pChar); cdecl; external 'history' name 'add_history';
var
  s:pChar;
begin
  s:=nil;
  WriteLn('type "quit" to exit.');
  using_history();
  repeat
    s:=readline('?>');
    add_history(s);
    WriteLn(s);
  until ( StrComp(s, 'quit') = 0 );
end.
Alan Mead
to Jeff Pohlmeyer

Jeff,

This works great on Linux... haven't tried it on Cygwin but I don't see why not... Thanks!

-Alan

Earlier message 43 lines
----- Original Message ---- From: Jeff Pohlmeyer To: Cc: Sent: Saturday, December 17, 2005 15:17:19 Subject: [fpc-pascal] RE: command line editing, history, etc. > I have a command line utility that would really benefit from > command line editing... is there a simple way to add this > kind of readline-like behavior to a FreePascal program? > I would appreciate the functionality on Linux but I might > also use the program on Windows. This works for Linux ( and possibly Cygwin ) if you have the libs... program histdemo; {$LINKLIB ncurses} {$LINKLIB readline} {$LINKLIB history} {$LINKLIB c} uses strings; function readline(prompt: pchar):pchar; cdecl; external 'readline' name 'readline'; procedure using_history(); cdecl; external 'history' name 'using_history'; procedure add_history(s:pChar); cdecl; external 'history' name 'add_history'; var s:pChar; begin s:=nil; WriteLn('type "quit" to exit.'); using_history(); repeat s:=readline('?>'); add_history(s); WriteLn(s); until ( StrComp(s, 'quit') = 0 ); end.