Explorar o código

* PChar -> PAnsiChar

Michaël Van Canneyt %!s(int64=2) %!d(string=hai) anos
pai
achega
79fd772870

+ 7 - 7
packages/ncurses/examples/db_demo.pp

@@ -31,20 +31,20 @@ Type
 
    tFields = Record
       x,y,wid : integer;
-      pic : string;
+      pic : shortstring;
    End;
 
 Var
    win : tnWindow;
    address : Array [1..MAXROWS] of tAddress;
    fields : Array [1..MAXCOLS] of tFields;
-   s : string;
+   s : shortstring;
    i,
    m1,m2,
    att1,att2,att3,
    row,
    col : integer;
-   ch : char;
+   ch : AnsiChar;
    IsDone : boolean;
 
 Procedure Display(row : integer);
@@ -71,8 +71,8 @@ End;
 Procedure BindArrows;
 Begin
    win.ec.Special := ^I^R^L^P^N;
-   m1 := win.ec.AddChMap(#0+Char(nKeyRight)+^R#0);
-   m2 := win.ec.AddChMap(#0+Char(nKeyLeft)+^L#0);
+   m1 := win.ec.AddChMap(#0+AnsiChar(nKeyRight)+^R#0);
+   m2 := win.ec.AddChMap(#0+AnsiChar(nKeyLeft)+^L#0);
    win.FWrite(1,win.Rows,48,0,'[F2]-Arrows');
 End;
 
@@ -122,8 +122,8 @@ Begin
       Writeln('     Street [                                        ]');
       Write  ('   Zip/City [  ]-[     ] [                              ]');
       Show;
-      ec.AddChMap(^P#0#0+Char(nKeyPgUp));
-      ec.AddChMap(^N#0#0+Char(nKeyPgDn));
+      ec.AddChMap(^P#0#0+AnsiChar(nKeyPgUp));
+      ec.AddChMap(^N#0#0+AnsiChar(nKeyPgDn));
       BindArrows;
       row := 1;
       col := 1;

+ 9 - 9
packages/ncurses/examples/edit_demo.pp

@@ -32,7 +32,7 @@ type
    { doubly linked list of strings to edit }
    pLine = ^tLine;
    tLine = Record
-      s : ^string;
+      s : ^shortstring;
       next,
       prev : pLine;
    End;
@@ -43,7 +43,7 @@ var
    line,                           { current position in list }
    line1 : pLine;                  { first list item of current page }
    ss : array[1..MAXLINES] of s80; { a sliding screen buffer }
-   xp,yp : string;                 { x & y positions for the status line }
+   xp,yp : shortstring;                 { x & y positions for the status line }
    EdWin,                          { main edit window }
    StatWin : tnWindow;             { status line }
    mnu0 : tnMenu;                  { main menu }
@@ -57,11 +57,11 @@ var
    mactive,                        { is the menu active? }
    Finished : boolean;             { exit when finished }
    tf : text;                      { the text file we are reading/writing }
-   fnam : string;                  { name of the current file, tf }
+   fnam : shortstring;                  { name of the current file, tf }
 
 
 { replace the old string with a new one }
-Procedure ReallocateLine(var p : pLine; s : string);
+Procedure ReallocateLine(var p : pLine; s : shortstring);
 Begin
    If p = Nil Then Exit;
    If p^.s^ <> s Then Begin
@@ -72,7 +72,7 @@ Begin
 End;
 
 { insert a new pline into the edit list before p }
-Procedure InsertLine(var p : pLine; s : string);
+Procedure InsertLine(var p : pLine; s : shortstring);
 Var
    tmp : pLine;
 Begin
@@ -159,7 +159,7 @@ Begin
    h^.s := nil;
 End;
 
-Function PromptFile(hs : string; var s : string) : integer;
+Function PromptFile(hs : shortstring; var s : shortstring) : integer;
 Var
    win : pnWindow;
    ret : integer;
@@ -180,7 +180,7 @@ End;
 { prompt for, and open a text file }
 Function OpenFile(var f : text; prompt : boolean) : boolean;
 Var
-   s : string;
+   s : shortstring;
    tst : text;
    ret : integer;
 Begin
@@ -213,7 +213,7 @@ End;
 Procedure ReadFile(var f : text; prompt : boolean);
 Var
    err : boolean;
-   s : string;
+   s : shortstring;
    win : pnWindow;
 Begin
    If Not OpenFile(f,prompt) Then Exit;
@@ -244,7 +244,7 @@ Procedure SaveFile(var f : text);
 Var
    tmp : text;
    s,
-   tnam : string;
+   tnam : shortstring;
    cur : pLine;
    win : pnWindow;
 Begin

+ 2 - 2
packages/ncurses/examples/menu_demo.pp

@@ -2,7 +2,7 @@ uses
   ncurses,menu;
 
 const
-  choices : array[0..5] of pchar = (
+  choices : array[0..5] of PAnsiChar = (
                         'Choice 1',
                         'Choice 2',
                         'Choice 3',
@@ -10,7 +10,7 @@ const
                         'Exit',
                         nil
                   );
-procedure print_in_middle(win : PWINDOW;starty,startx,width : longint;_string : pchar;color : chtype);
+procedure print_in_middle(win : PWINDOW;starty,startx,width : longint;_string : PAnsiChar;color : chtype);
   var
     length,x,y : longint;
     temp : single;

+ 2 - 2
packages/ncurses/examples/ocrt_demo.pp

@@ -25,8 +25,8 @@ uses oCrt;
 var
    win,win1,
    stdscr : pwin;
-   s : string;
-   c : char;
+   s : shortstring;
+   c : AnsiChar;
    i,j,k,x,y : integer;
 
 var

+ 1 - 1
packages/ncurses/examples/t1form.pp

@@ -3,7 +3,7 @@ program form_basic;
   Example 25. Forms Basics
   from ncurses howto
 
-  Possible bug: moving cursors before first char doesn't seem to work.
+  Possible bug: moving cursors before first AnsiChar doesn't seem to work.
 }
 {$MODE OBJFPC}
 

+ 1 - 1
packages/ncurses/examples/t1menu.pp

@@ -10,7 +10,7 @@ uses
   ncurses, menu;
 
 const
-  choices: array[0..4] of PChar  =
+  choices: array[0..4] of PAnsiChar  =
                       (
                         'Choice 1',
                         'Choice 2',

+ 1 - 1
packages/ncurses/examples/t1panel.pp

@@ -41,7 +41,7 @@ begin
   temp := (width - slength)/ 2;
   x := startx + round(temp);
   wattron(win, color);
-  mvwaddstr(win, y, x, PChar(str));
+  mvwaddstr(win, y, x, PAnsiChar(str));
   wattroff(win, color);
   refresh();
 

+ 1 - 1
packages/ncurses/examples/t2form.pp

@@ -6,7 +6,7 @@ uses
   ncurses, form, initc;
 
 
-procedure setlocale(cat : integer; p : pchar); cdecl; external clib;
+procedure setlocale(cat : integer; p : PAnsiChar); cdecl; external clib;
 
 
 const

+ 2 - 2
packages/ncurses/examples/t2menu.pp

@@ -29,7 +29,7 @@ begin
     width := mx;
 
   wattron(win,COLOR_PAIR(pair));
-  mvwaddnstr(win,starty,startx + st_middle(mx,width),PChar(tstr),width);
+  mvwaddnstr(win,starty,startx + st_middle(mx,width),PAnsiChar(tstr),width);
   wattroff(win,COLOR_PAIR(pair));
 end;
 
@@ -37,7 +37,7 @@ end;
 type
   PMinfo = ^TMinfo;
   TMinfo = record
-    n, d: PChar;
+    n, d: PAnsiChar;
   end;
 
 

+ 1 - 1
packages/ncurses/examples/t2panel.pp

@@ -35,7 +35,7 @@ begin
   temp := (width - slength)/ 2;
   x := startx + round(temp);
   wattron(win, color);
-  mvwaddstr(win, y, x, PChar(str));
+  mvwaddstr(win, y, x, PAnsiChar(str));
   wattroff(win, color);
   refresh();
 

+ 7 - 7
packages/ncurses/examples/t3form.pp

@@ -8,7 +8,7 @@ program form_test_3;
 uses
   ncurses, form, initc;
 
-procedure setlocale(cat : integer; p : pchar); cdecl; external clib;
+procedure setlocale(cat : integer; p : PAnsiChar); cdecl; external clib;
 
 
 const
@@ -25,10 +25,10 @@ procedure draw;
 
 function randomchar: chtype;
 var
-  ch: Char = #0;
+  ch: AnsiChar = #0;
 begin
   while not (ch in ['0'..'9','A'..'Z','a'..'z']) do
-    ch := Char(Random(123));
+    ch := AnsiChar(Random(123));
   randomchar := chtype(ch);
 end;
 
@@ -50,10 +50,10 @@ begin
 end;
 
 const
-  enumval: array[0..2] of PChar = ('one', 'two', 'three');
-  desc: array[0..5] of PChar =
+  enumval: array[0..2] of PAnsiChar = ('one', 'two', 'three');
+  desc: array[0..5] of PAnsiChar =
               (
-                'TYPE_ALPHA    Char data, a min width 8',
+                'TYPE_ALPHA    AnsiChar data, a min width 8',
                 'TYPE_ENUM      one, two, three',
                 'TYPE_INTEGER     -300 .. 300',
                 'TYPE_NUMERIC    -30.0 .. 30.0',
@@ -116,7 +116,7 @@ try
    field[6] := nil;
 
    set_field_type(field[0],TYPE_ALPHA,8);
-   set_field_type(field[1],TYPE_ENUM,PPChar(enumval),0,0);
+   set_field_type(field[1],TYPE_ENUM,PPAnsiChar(enumval),0,0);
    set_field_type(field[2],TYPE_INTEGER,3,-300,300);
    set_field_type(field[3],TYPE_NUMERIC,8,-30.0,30.0);
    set_field_type(field[4],TYPE_REGEXP,'^http://.+\.(ru|net|com)\s*$');

+ 1 - 1
packages/ncurses/examples/tbackground.pp

@@ -15,7 +15,7 @@ begin
 	start_color();
 
 	pair_content(0, @f, @b);
-	printw(PChar('pair 0 contains (%d,%d)'#10), f, b);
+	printw(PAnsiChar('pair 0 contains (%d,%d)'#10), f, b);
 	getch();
 
 	printw('Initializing pair 1 to red/black'#10);

+ 3 - 3
packages/ncurses/examples/tclock.pp

@@ -4,7 +4,7 @@ program tclock;
 uses
   ncurses, sysutils, initc;
 
-procedure setlocale(cat : integer; p : pchar); cdecl; external clib;
+procedure setlocale(cat : integer; p : PAnsiChar); cdecl; external clib;
 
 
 const
@@ -194,7 +194,7 @@ begin
   attron(COLOR_PAIR(3));
   mvaddstr(cy - 5, cx - Length(title1) DIV 2, title1);
   mvaddstr(cy - 4, cx - Length(title2) DIV 2, title2);
-  mvaddstr(cy - 3, cx - Length(vstr) DIV 2, PChar(vstr));
+  mvaddstr(cy - 3, cx - Length(vstr) DIV 2, PAnsiChar(vstr));
   attroff(COLOR_PAIR(3));
   attron(A_UNDERLINE);
   mvaddstr(cy + 2, cx - Length(title3) DIV 2, title3);
@@ -248,7 +248,7 @@ begin
       Hour := Hour MOD 12;
 
       timestr := DateTimeToStr(Now);
-      mvaddstr(cy + round(sradius) - 4, cx - Length(timestr) DIV 2, PChar(timestr));
+      mvaddstr(cy + round(sradius) - 4, cx - Length(timestr) DIV 2, PAnsiChar(timestr));
 
       angle := Hour * _2PI / 12;
       dline(cy, cx, cy - A2Y(angle, hradius), cx + A2X(angle, hradius), chtype('*'),Hrest);

+ 1 - 1
packages/ncurses/examples/tevent.pp

@@ -31,7 +31,7 @@ begin
         chtype('2'): raw();
         chtype('3'): halfdelay(10);
       else
-        mvaddstr(LINES - 1, 1,PChar(Format('name:%-14s code:%d', [ keyname(ch), ch ] )));
+        mvaddstr(LINES - 1, 1,PAnsiChar(Format('name:%-14s code:%d', [ keyname(ch), ch ] )));
       end;
     until (ch = chtype('q')) OR (ch = KEY_F(10));
   finally

+ 3 - 3
packages/ncurses/examples/tmouse.pp

@@ -10,10 +10,10 @@ procedure draw;
 
 function randomchar: chtype;
 var
-  ch: Char = #0;
+  ch: AnsiChar = #0;
 begin
   while not (ch in ['0'..'9','A'..'Z','a'..'z']) do
-    ch := Char(Random(123));
+    ch := AnsiChar(Random(123));
   randomchar := chtype(ch);
 end;
 
@@ -56,7 +56,7 @@ begin
   begin
     mvwaddstr(win, 1, 1, '                  ');
     str := Format('y := %D, x := %D', [event.y, event.x]);
-    mvwaddstr(win, 1, 2, PChar(str));
+    mvwaddstr(win, 1, 2, PAnsiChar(str));
     wattron(win,A_BOLD);
     mvwaddch(win, 3, 9, mvinch(event.y,event.x ));
     wattroff(win,A_BOLD);

+ 3 - 3
packages/ncurses/examples/tnlshello.pp

@@ -10,7 +10,7 @@ program nlshello;
 uses
   gettext, ncurses, initc;
 
-procedure setlocale(cat : integer; p : pchar); cdecl; external clib;
+procedure setlocale(cat : integer; p : PAnsiChar); cdecl; external clib;
 
 
 const
@@ -45,9 +45,9 @@ begin
 
     TranslateResourcestrings('%s/messages.mo');
     wattron(win,A_BLINK OR A_BOLD OR COLOR_PAIR(2));
-    mvwaddstr(win,3,3, PChar(hello_world));
+    mvwaddstr(win,3,3, PAnsiChar(hello_world));
     wattroff(win,A_BLINK OR A_BOLD OR COLOR_PAIR(2));
-    mvwaddstr(win,5,3, PChar(press_key));
+    mvwaddstr(win,5,3, PAnsiChar(press_key));
     wrefresh(win);
     getch();
   finally

+ 3 - 3
packages/ncurses/examples/tpad.pp

@@ -33,10 +33,10 @@ end;
 
 function randomchar: chtype;
 var
-  ch: Char = #0;
+  ch: AnsiChar = #0;
 begin
   while not (ch in ['0'..'9','A'..'Z','a'..'z']) do
-    ch := Char(Random(123));
+    ch := AnsiChar(Random(123));
   randomchar := chtype(ch);
 end;
 
@@ -104,7 +104,7 @@ begin
   nstr.coord[x] += st_middle(mx,width);
 
   wattron(win,nstr.attr);
-  mvwaddnstr(win,nstr.coord[y],nstr.coord[x],PChar(nstr.str),width);
+  mvwaddnstr(win,nstr.coord[y],nstr.coord[x],PAnsiChar(nstr.str),width);
   wattroff(win,nstr.attr);
 end;
 

+ 4 - 4
packages/ncurses/examples/twindow.pp

@@ -9,7 +9,7 @@ var
   tstr: AnsiString;
 begin
   FmtStr(tstr, fmt, args);
-  mvwaddstr(win,y,x, PChar(tstr));
+  mvwaddstr(win,y,x, PAnsiChar(tstr));
 end;
 
 procedure printinfo(win: PWINDOW);
@@ -21,13 +21,13 @@ begin
     printw(win,3 ,1,'_begy=%-3d, _begx=%-3d : screen coords of upper-left-hand corner',[_begy,_begx]);
     printw(win,4 ,1,'_flags=%-3d           : window state flags',[_flags]);
     printw(win,5 ,1,'_attrs=%-4d          : current attribute for non-space character',[_attrs]);
-    printw(win,6 ,1,'_bkgd=%-3d            : current background char/attribute pair',[_bkgd]);
+    printw(win,6 ,1,'_bkgd=%-3d            : current background AnsiChar/attribute pair',[_bkgd]);
     printw(win,7 ,1,'_notimeout=%-1d         :  no time out on function-key entry?', [Byte(_notimeout)]);
     printw(win,8 ,1,'_clear=%-1d             : consider all data in the window invalid?',[Byte(_clear)]);
     printw(win,9 ,1,'_leaveok=%-1d           : OK to not reset cursor on exit?',[Byte(_leaveok)]);
     printw(win,10,1,'_scroll=%-1d            : OK to scroll this window?',[Byte(_scroll)]);
     printw(win,11,1,'_idlok=%-1d             : OK to use insert/delete line?',[Byte(_idlok)]);
-    printw(win,12,1,'_idcok=%-1d             : OK to use insert/delete char?',[Byte(_idcok)]);
+    printw(win,12,1,'_idcok=%-1d             : OK to use insert/delete AnsiChar?',[Byte(_idcok)]);
     printw(win,13,1,'_immed=%-1d             : window in immed mode? (not yet used)',[Byte(_immed)]);
     printw(win,14,1,'_sync=%-1d              : window in sync mode?',[Byte(_sync)]);
     printw(win,15,1,'_use_keypad=%-1d        : process function keys into KEY_ symbols?',[Byte(_use_keypad)]);
@@ -35,7 +35,7 @@ begin
     printw(win,17,1,'_parx=%-3d            : x coordinate of this window in parent',[_parx]);
     printw(win,18,1,'_pary=%-3d            : y coordinate of this window in parent',[_pary]);
     printw(win,19,1,'_yoffset=%-3d         : real begy is _begy + _yoffset',[_yoffset]);
-    printw(win,20,1,'_bkgrnd.attr=%-4d    : current background char/attribute pair',[_bkgrnd.attr]);
+    printw(win,20,1,'_bkgrnd.attr=%-4d    : current background AnsiChar/attribute pair',[_bkgrnd.attr]);
   end;
 end;
 

+ 14 - 14
packages/ncurses/src/form.pp

@@ -159,25 +159,25 @@ const
    REQ_RIGHT_FIELD = KEY_MAX + 14;  { move to right to field  }
    REQ_UP_FIELD = KEY_MAX + 15;     { move to up to field    }
    REQ_DOWN_FIELD = KEY_MAX + 16;   { move to down to field  }
-   REQ_NEXT_CHAR = KEY_MAX + 17;    { move to next char in field  }
-   REQ_PREV_CHAR = KEY_MAX + 18;    { move to prev char in field  }
+   REQ_NEXT_CHAR = KEY_MAX + 17;    { move to next AnsiChar in field  }
+   REQ_PREV_CHAR = KEY_MAX + 18;    { move to prev AnsiChar in field  }
    REQ_NEXT_LINE = KEY_MAX + 19;    { move to next line in field  }
    REQ_PREV_LINE = KEY_MAX + 20;    { move to prev line in field  }
    REQ_NEXT_WORD = KEY_MAX + 21;    { move to next word in field  }
    REQ_PREV_WORD = KEY_MAX + 22;    { move to prev word in field  }
-   REQ_BEG_FIELD = KEY_MAX + 23;    { move to first char in field   }
-   REQ_END_FIELD = KEY_MAX + 24;    { move after last char in fld   }
+   REQ_BEG_FIELD = KEY_MAX + 23;    { move to first AnsiChar in field   }
+   REQ_END_FIELD = KEY_MAX + 24;    { move after last AnsiChar in fld   }
    REQ_BEG_LINE = KEY_MAX + 25;     { move to beginning of line  }
-   REQ_END_LINE = KEY_MAX + 26;     { move after last char in line   }
+   REQ_END_LINE = KEY_MAX + 26;     { move after last AnsiChar in line   }
    REQ_LEFT_CHAR = KEY_MAX + 27;    { move left in field    }
    REQ_RIGHT_CHAR = KEY_MAX + 28;   { move right in field    }
    REQ_UP_CHAR = KEY_MAX + 29;      { move up in field    }
    REQ_DOWN_CHAR = KEY_MAX + 30;    { move down in field    }
    REQ_NEW_LINE = KEY_MAX + 31;     { insert/overlay new line  }
-   REQ_INS_CHAR = KEY_MAX + 32;     { insert blank char at cursor  }
+   REQ_INS_CHAR = KEY_MAX + 32;     { insert blank AnsiChar at cursor  }
    REQ_INS_LINE = KEY_MAX + 33;     { insert blank line at cursor  }
-   REQ_DEL_CHAR = KEY_MAX + 34;     { delete char at cursor  }
-   REQ_DEL_PREV = KEY_MAX + 35;     { delete char before cursor  }
+   REQ_DEL_CHAR = KEY_MAX + 34;     { delete AnsiChar at cursor  }
+   REQ_DEL_PREV = KEY_MAX + 35;     { delete AnsiChar before cursor  }
    REQ_DEL_LINE = KEY_MAX + 36;     { delete line at cursor  }
    REQ_DEL_WORD = KEY_MAX + 37;     { delete word at cursor  }
    REQ_CLR_EOL = KEY_MAX + 38;      { clear to end of line    }
@@ -191,8 +191,8 @@ const
    REQ_SCR_BPAGE = KEY_MAX + 46;    { scroll field backward a page  }
    REQ_SCR_FHPAGE = KEY_MAX + 47;   { scroll field forward   half page  }
    REQ_SCR_BHPAGE = KEY_MAX + 48;   { scroll field backward half page  }
-   REQ_SCR_FCHAR = KEY_MAX + 49;    { horizontal scroll char  }
-   REQ_SCR_BCHAR = KEY_MAX + 50;    { horizontal scroll char  }
+   REQ_SCR_FCHAR = KEY_MAX + 49;    { horizontal scroll AnsiChar  }
+   REQ_SCR_BCHAR = KEY_MAX + 50;    { horizontal scroll AnsiChar  }
    REQ_SCR_HFLINE = KEY_MAX + 51;   { horizontal scroll line   }
    REQ_SCR_HBLINE = KEY_MAX + 52;   { horizontal scroll line   }
    REQ_SCR_HFHALF = KEY_MAX + 53;   { horizontal scroll half line  }
@@ -279,7 +279,7 @@ function set_field_fore(_para1:PFIELD; _para2:chtype):Longint; cdecl;external li
 function set_field_back(_para1:PFIELD; _para2:chtype):Longint; cdecl;external libform;
 function set_field_pad(_para1:PFIELD; _para2:Longint):Longint; cdecl;external libform;
 function field_pad(_para1:PFIELD):Longint; cdecl;external libform;
-function set_field_buffer(_para1:PFIELD; _para2:Longint;_para3:PChar):Longint; cdecl;external libform;
+function set_field_buffer(_para1:PFIELD; _para2:Longint;_para3:PAnsiChar):Longint; cdecl;external libform;
 function set_field_status(_para1:PFIELD; _para2:Bool):Longint; cdecl;external libform;
 function set_field_userptr(_para1:PFIELD; _para2:Pointer):Longint; cdecl;external libform;
 function set_field_opts(_para1:PFIELD; _para2:Field_Options):Longint; cdecl;external libform;
@@ -292,7 +292,7 @@ function field_status(_para1:PFIELD):Bool; cdecl;external libform;
 function field_arg(_para1:PFIELD):Pointer; cdecl;external libform;
 function field_userptr(_para1:PFIELD):Pointer; cdecl;external libform;
 function field_type(_para1:PFIELD):PFIELDTYPE; cdecl;external libform;
-function field_buffer(_para1:PFIELD; _para2:Longint):PChar; cdecl;external libform;
+function field_buffer(_para1:PFIELD; _para2:Longint):PAnsiChar; cdecl;external libform;
 function field_opts(_para1:PFIELD):Field_Options; cdecl;external libform;
 
 (*  FORM routines  *)
@@ -327,8 +327,8 @@ function set_form_userptr(_para1:PFORM; _para2:Pointer):Longint; cdecl;external
 function set_form_opts(_para1:PFORM; _para2:Form_Options):Longint; cdecl;external libform;
 function form_opts_on(_para1:PFORM; _para2:Form_Options):Longint; cdecl;external libform;
 function form_opts_off(_para1:PFORM; _para2:Form_Options):Longint; cdecl;external libform;
-function form_request_by_name(_para1:PChar):Longint; cdecl;external libform;
-function form_request_name(_para1:Longint):PChar; cdecl;external libform;
+function form_request_by_name(_para1:PAnsiChar):Longint; cdecl;external libform;
+function form_request_name(_para1:Longint):PAnsiChar; cdecl;external libform;
 function form_userptr(_para1:PFORM):Pointer; cdecl;external libform;
 function form_opts(_para1:PFORM):Form_Options; cdecl;external libform;
 function data_ahead(_para1:PFORM):Bool; cdecl;external libform;

+ 12 - 12
packages/ncurses/src/menu.pp

@@ -32,7 +32,7 @@ const
 
 type
    TTEXT = record
-        str : PChar;
+        str : PAnsiChar;
         length : Word;
      end;
 
@@ -79,7 +79,7 @@ type
         spc_desc : Smallint;    { Spacing for descriptor           }
         spc_cols : Smallint;    { Spacing for columns              }
         spc_rows : Smallint;    { Spacing for rows                 }
-        pattern : PChar;        { Buffer to store match chars      }
+        pattern : PAnsiChar;        { Buffer to store match chars      }
         pindex : Smallint;      { Index into pattern buffer        }
         win : PWINDOW;          { Window containing menu           }
         sub : PWINDOW;          { Subwindow for menu display       }
@@ -98,7 +98,7 @@ type
         iteminit : Menu_Hook;
         itemterm : Menu_Hook;
         userptr : Pointer;      { Pointer to menus user data       }
-        mark : PChar;           { Pointer to marker string         }
+        mark : PAnsiChar;           { Pointer to marker string         }
         opt : Menu_Options;     { Menu options                     }
         status : Word;          { Internal state of menu           }
      end;
@@ -139,7 +139,7 @@ const
 
 function menu_items(_para1:PMENU):ppITEM; cdecl;external libncurses;
 function current_item(_para1:PMENU):pITEM; cdecl;external libncurses;
-function new_item(_para1:PChar; _para2:PChar):pITEM; cdecl;external libncurses;
+function new_item(_para1:PAnsiChar; _para2:PAnsiChar):pITEM; cdecl;external libncurses;
 function new_menu(_para1:PPITEM):pMENU; cdecl;external libncurses;
 function item_opts(_para1:PITEM):Item_Options; cdecl;external libncurses;
 function menu_opts(_para1:PMENU):Menu_Options; cdecl;external libncurses;
@@ -149,11 +149,11 @@ function menu_init(_para1:PMENU):Menu_Hook; cdecl;external libncurses;
 function menu_term(_para1:PMENU):Menu_Hook; cdecl;external libncurses;
 function menu_sub(_para1:PMENU):PWINDOW; cdecl;external libncurses;
 function menu_win(_para1:PMENU):PWINDOW; cdecl;external libncurses;
-function item_description(_para1:PITEM):PChar; cdecl;external libncurses;
-function item_name(_para1:PITEM):PChar; cdecl;external libncurses;
-function menu_mark(_para1:PMENU):PChar; cdecl;external libncurses;
-function menu_request_name(_para1:Longint):PChar; cdecl;external libncurses;
-function menu_pattern(_para1:PMENU):PChar; cdecl;external libncurses;
+function item_description(_para1:PITEM):PAnsiChar; cdecl;external libncurses;
+function item_name(_para1:PITEM):PAnsiChar; cdecl;external libncurses;
+function menu_mark(_para1:PMENU):PAnsiChar; cdecl;external libncurses;
+function menu_request_name(_para1:Longint):PAnsiChar; cdecl;external libncurses;
+function menu_pattern(_para1:PMENU):PAnsiChar; cdecl;external libncurses;
 function menu_userptr(_para1:PMENU):Pointer; cdecl;external libncurses;
 function item_userptr(_para1:PITEM):Pointer; cdecl;external libncurses;
 function menu_back(_para1:PMENU):chtype; cdecl;external libncurses;
@@ -187,10 +187,10 @@ function set_menu_grey(_para1:PMENU; _para2:chtype):Longint; cdecl;external libn
 //function set_menu_init(_para1:PMENU; _para2:procedure (_para1:PMENU)):Longint; cdecl;external libncurses;
 function set_menu_init(_para1:PMENU; _para2:Menu_Hook):Longint; cdecl;external libncurses;
 function set_menu_items(_para1:PMENU; _para2:PPITEM):Longint; cdecl;external libncurses;
-function set_menu_mark(_para1:PMENU; _para2:PChar):Longint; cdecl;external libncurses;
+function set_menu_mark(_para1:PMENU; _para2:PAnsiChar):Longint; cdecl;external libncurses;
 function set_menu_opts(_para1:PMENU; _para2:Menu_Options):Longint; cdecl;external libncurses;
 function set_menu_pad(_para1:PMENU; _para2:Longint):Longint; cdecl;external libncurses;
-function set_menu_pattern(_para1:PMENU; _para2:PChar):Longint; cdecl;external libncurses;
+function set_menu_pattern(_para1:PMENU; _para2:PAnsiChar):Longint; cdecl;external libncurses;
 function set_menu_sub(_para1:PMENU; _para2:PWINDOW):Longint; cdecl;external libncurses;
 //function set_menu_term(_para1:PMENU; _para2:procedure (_para1:PMENU)):Longint; cdecl;external libncurses;
 function set_menu_term(_para1:PMENU; _para2:Menu_Hook):Longint; cdecl;external libncurses;
@@ -199,7 +199,7 @@ function set_menu_win(_para1:PMENU; _para2:PWINDOW):Longint; cdecl;external libn
 function set_top_row(_para1:PMENU; _para2:Longint):Longint; cdecl;external libncurses;
 function top_row(_para1:PMENU):Longint; cdecl;external libncurses;
 function unpost_menu(_para1:PMENU):Longint; cdecl;external libncurses;
-function menu_request_by_name(_para1:PChar):Longint; cdecl;external libncurses;
+function menu_request_by_name(_para1:PAnsiChar):Longint; cdecl;external libncurses;
 function set_menu_spacing(_para1:PMENU; _para2:Longint; _para3:Longint; _para4:Longint):Longint; cdecl;external libncurses;
 function menu_spacing(_para1:PMENU; _para2:PLongint; _para3:PLongint; _para4:PLongint):Longint; cdecl;external libncurses;
 function item_value(_para1:PITEM):Bool; cdecl;external libncurses;

+ 12 - 12
packages/ncurses/src/ncrt.inc

@@ -77,7 +77,7 @@ Procedure InsLine;
 Procedure LowVideo;
 Procedure NormVideo;
 Procedure NoSound;
- Function Readkey : char;
+ Function Readkey : AnsiChar;
 Procedure Sound(hz : word);
 Procedure TextBackground(att : byte);
 Procedure TextColor(att : byte);
@@ -89,7 +89,7 @@ Procedure nStop;
 Procedure nStart;
  Function nCursor(c : integer) : integer;
  Function nEscDelay(d : longint) : longint;
- Function nTermName : string;
+ Function nTermName : shortstring;
 
 Const
 
@@ -204,7 +204,7 @@ Var
    ExitSave : pointer;                { pointer to original exit proc }
    fg,bg : integer;                   { foreground & background }
    cp : array [0..7,0..7] of integer; { color pair array }
-   ps : array [0..255] of char;       { for use with pchars }
+   ps : array [0..255] of AnsiChar;       { for use with pchars }
    doRefresh : boolean;               { immediate refresh toggle }
    SubWn,                             { window created from window() }
    PrevWn,                            { previous window when active changes }
@@ -502,9 +502,9 @@ End;
  Note: Make sure that keypad(win,true) has been issued prior to use.
        ( nWindow does this )
  ---------------------------------------------------------------------}
-Function nReadkey(win : pWindow) : char;
+Function nReadkey(win : pWindow) : AnsiChar;
 var
-   c : char;
+   c : AnsiChar;
    l : longint;
    xtnded : boolean;
 Begin
@@ -600,7 +600,7 @@ Begin
 End;
 
 { write a string to a window at the current cursor position }
-Procedure nWrite(win : pWindow; s : string);
+Procedure nWrite(win : pWindow; s : shortstring);
 Begin
    If TextAttr <> prev_textattr Then
       nWinColor(win,TextAttr);
@@ -616,7 +616,7 @@ End;
  =========================================================================}
 
 { used by CrtWrite }
-Procedure DoWrite(temp : string);
+Procedure DoWrite(temp : shortstring);
 Begin
    nWrite(ActiveWn,temp);
 End;
@@ -626,7 +626,7 @@ Function CrtWrite(Var F: TextRec): Integer;
   Top level write function for CRT
 }
 Var
-  Temp : String;
+  Temp : shortstring;
   idx,i : Longint;
 {  oldflush : boolean;}
 Begin
@@ -638,7 +638,7 @@ Begin
      if i>255 then
       i:=255;
      system.Move(F.BufPTR^[idx],Temp[1],F.BufPos);
-     Temp[0]:=Chr(i);
+     SetLength(Temp,i);
      DoWrite(Temp);
      dec(F.BufPos,i);
      inc(idx,i);
@@ -835,7 +835,7 @@ Begin
 { Below is more efficient code, but does not work well with
   nReadkey & extended keys because nReadkey's ungetch does not
   force a change in STDIN. So, a "while keypressed" block does
-  not produce the expected results when trapping for char(0)
+  not produce the expected results when trapping for AnsiChar(0)
   followed by a second scan code.
 
    FD_Zero(fd);
@@ -845,7 +845,7 @@ Begin
 End;
 
 { silently read a key from stdscr }
-Function Readkey : char;
+Function Readkey : AnsiChar;
 Begin
    tmp_b := IsEcho;
    noecho;
@@ -891,7 +891,7 @@ Begin
 End;
 
 { return the current terminal name (same as $TERM env variable) }
-Function nTermName : string;
+Function nTermName : shortstring;
 Begin
    nTermName := StrPas(termname);
 End;

+ 114 - 114
packages/ncurses/src/ncurses.pp

@@ -108,7 +108,7 @@ type
 
 { line graphics  }
 type
-   tacs_map = array [char] of chtype;
+   tacs_map = array [AnsiChar] of chtype;
    pacs_map = ^tacs_map;
 
 var
@@ -230,14 +230,14 @@ type
      _flags : Smallint;           { window state flags  }
 { attribute tracking  }
      _attrs : attr_t;             { current attribute for non-space character }
-     _bkgd : chtype;              { current background char/attribute pair  }
+     _bkgd : chtype;              { current background AnsiChar/attribute pair  }
 { option values set by user  }
      _notimeout : Bool;           { no time out on function-key entry?  }
      _clear : Bool;               { consider all data in the window invalid?  }
      _leaveok : Bool;             { OK to not reset cursor on exit?  }
      _scroll : Bool;              { OK to scroll this window?  }
      _idlok : Bool;               { OK to use insert/delete line?  }
-     _idcok : Bool;               { OK to use insert/delete char?  }
+     _idcok : Bool;               { OK to use insert/delete AnsiChar?  }
      _immed : Bool;               { window in immed mode? (not yet used)  }
      _sync : Bool;                { window in sync mode?  }
      _use_keypad : Bool;          { process function keys into KEY_ symbols?  }
@@ -260,7 +260,7 @@ type
         _pad_right : Smallint;
      end;
         _yoffset : Smallint;     { real begy is _begy + _yoffset  }
-        _bkgrnd : cchar_t;       { current background char/attribute pair  }
+        _bkgrnd : cchar_t;       { current background AnsiChar/attribute pair  }
 {$IFDEF NCURSES_EXT_COLORS}
      _color : cint;              { current color-pair for non-space character }
 {$ENDIF NCURSES_EXT_COLORS}
@@ -294,11 +294,11 @@ type
  *)
 
 function is_term_resized(_para1:Longint; _para2:Longint):Bool;cdecl;external libncurses;
-function keybound(_para1:Longint; _para2:Longint):PChar;cdecl;external  libncurses;
-function curses_version:PChar;cdecl;external  libncurses;
+function keybound(_para1:Longint; _para2:Longint):PAnsiChar;cdecl;external  libncurses;
+function curses_version:PAnsiChar;cdecl;external  libncurses;
 function assume_default_colors(_para1:Longint; _para2:Longint):Longint; cdecl;external libncurses;
-function define_key(_para1:PChar; _para2:Longint):Longint; cdecl;external libncurses;
-function key_defined(_para1:PChar):Longint; cdecl;external libncurses;
+function define_key(_para1:PAnsiChar; _para2:Longint):Longint; cdecl;external libncurses;
+function key_defined(_para1:PAnsiChar):Longint; cdecl;external libncurses;
 function keyok(_para1:Longint; _para2:Bool):Longint; cdecl;external libncurses;
 function resize_term(_para1:Longint; _para2:Longint):Longint; cdecl;external libncurses;
 function resizeterm(_para1:Longint; _para2:Longint):Longint; cdecl;external libncurses;
@@ -331,7 +331,7 @@ function doupdate:Longint; cdecl;external libncurses;
 function dupwin(_para1:PWINDOW):PWINDOW;cdecl;external libncurses;
 function echo:Longint; cdecl;external libncurses;
 function endwin:Longint; cdecl;external libncurses;
-function erasechar:PChar;cdecl;external libncurses;
+function erasechar:PAnsiChar;cdecl;external libncurses;
 procedure filter;cdecl;external libncurses;
 function flash:Longint; cdecl;external libncurses;
 function flushinp:Longint; cdecl;external libncurses;
@@ -352,18 +352,18 @@ function intrflush(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurs
 function isendwin:Bool;cdecl;external libncurses;
 function is_linetouched(_para1:PWINDOW; _para2:Longint):Bool;cdecl;external libncurses;
 function is_wintouched(_para1:PWINDOW):Bool;cdecl;external libncurses;
-function keyname(_para1:Longint):PChar;cdecl;external libncurses;
+function keyname(_para1:Longint):PAnsiChar;cdecl;external libncurses;
 function keypad(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
-function killchar:PChar;cdecl;external libncurses;
+function killchar:PAnsiChar;cdecl;external libncurses;
 function leaveok(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
-function longname:PChar;cdecl;external libncurses;
+function longname:PAnsiChar;cdecl;external libncurses;
 function meta(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
 function mvcur(_para1:Longint; _para2:Longint; _para3:Longint; _para4:Longint):Longint; cdecl;external libncurses;
 function mvderwin(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
 function mvwin(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
 function napms(_para1:Longint):Longint; cdecl;external libncurses;
 function newpad(_para1:Longint; _para2:Longint):PWINDOW;cdecl;external libncurses;
-function newterm(_para1:PChar; _para2:PFILE; _para3:PFILE):PSCREEN;cdecl;external libncurses;
+function newterm(_para1:PAnsiChar; _para2:PFILE; _para3:PFILE):PSCREEN;cdecl;external libncurses;
 function newwin(_para1:Longint; _para2:Longint; _para3:Longint; _para4:Longint):PWINDOW;cdecl;external libncurses;
 function nl:Longint; cdecl;external libncurses;
 function nocbreak:Longint; cdecl;external libncurses;
@@ -394,11 +394,11 @@ type TWinInit = function (win: PWINDOW; ncols: Longint): Longint; cdecl;
 function ripoffline(line: Longint; init: TWinInit):Longint; cdecl;external libncurses;
 
 function savetty:Longint; cdecl;external libncurses;
-function scr_dump(_para1:PChar):Longint; cdecl;external libncurses;
-function scr_init(_para1:PChar):Longint; cdecl;external libncurses;
+function scr_dump(_para1:PAnsiChar):Longint; cdecl;external libncurses;
+function scr_init(_para1:PAnsiChar):Longint; cdecl;external libncurses;
 function scrollok(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
-function scr_restore(_para1:PChar):Longint; cdecl;external libncurses;
-function scr_set(_para1:PChar):Longint; cdecl;external libncurses;
+function scr_restore(_para1:PAnsiChar):Longint; cdecl;external libncurses;
+function scr_set(_para1:PAnsiChar):Longint; cdecl;external libncurses;
 function set_term(_para1:PSCREEN):PSCREEN;cdecl;external libncurses;
 function slk_attroff(_para1:chtype):Longint; cdecl;external libncurses;
 
@@ -410,25 +410,25 @@ function slk_attr_set(_para1:attr_t; _para2:Smallint; _para3:Pointer):Longint; c
 function slk_clear:Longint; cdecl;external libncurses;
 function slk_color(_para1:Smallint):Longint; cdecl;external libncurses;
 function slk_init(_para1:Longint):Longint; cdecl;external libncurses;
-function slk_label(_para1:Longint):PChar;cdecl;external libncurses;
+function slk_label(_para1:Longint):PAnsiChar;cdecl;external libncurses;
 function slk_noutrefresh:Longint; cdecl;external libncurses;
 function slk_refresh:Longint; cdecl;external libncurses;
 function slk_restore:Longint; cdecl;external libncurses;
-function slk_set(_para1:Longint; _para2:PChar; _para3:Longint):Longint; cdecl;external libncurses;
+function slk_set(_para1:Longint; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
 function slk_touch:Longint; cdecl;external libncurses;
 function start_color:Longint; cdecl;external libncurses;
 function subpad(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:Longint; _para5:Longint):PWINDOW;cdecl;external libncurses;
 function subwin(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:Longint; _para5:Longint):PWINDOW;cdecl;external libncurses;
 function syncok(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
 function termattrs:chtype;cdecl;external libncurses;
-function termname:PChar;cdecl;external libncurses;
+function termname:PAnsiChar;cdecl;external libncurses;
 function typeahead(_para1:Longint):Longint; cdecl;external libncurses;
 function ungetch(_para1:Longint):Longint; cdecl;external libncurses;
 procedure use_env(_para1:Bool);cdecl;external libncurses;
 function vidattr(_para1:chtype):Longint; cdecl;external libncurses;
 function waddch(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
 function waddchnstr(_para1:PWINDOW; _para2:Pchtype; _para3:Longint):Longint; cdecl;external libncurses;
-function waddnstr(_para1:PWINDOW; _para2:PChar; _para3:Longint):Longint; cdecl;external libncurses;
+function waddnstr(_para1:PWINDOW; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
 function wattr_on(_para1:PWINDOW; _para2:attr_t; _para3:Pointer):Longint; cdecl;external libncurses;
 function wattr_off(_para1:PWINDOW; _para2:attr_t; _para3:Pointer):Longint; cdecl;external libncurses;
 function wbkgd(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
@@ -445,14 +445,14 @@ function wdelch(_para1:PWINDOW):Longint; cdecl;external libncurses;
 function wechochar(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
 function werase(_para1:PWINDOW):Longint; cdecl;external libncurses;
 function wgetch(_para1:PWINDOW):Longint; cdecl;external libncurses;
-function wgetnstr(_para1:PWINDOW; _para2:PChar; _para3:Longint):Longint; cdecl;external libncurses;
+function wgetnstr(_para1:PWINDOW; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
 function whline(_para1:PWINDOW; _para2:chtype; _para3:Longint):Longint; cdecl;external libncurses;
 function winch(_para1:PWINDOW):chtype;cdecl;external libncurses;
 function winchnstr(_para1:PWINDOW; _para2:Pchtype; _para3:Longint):Longint; cdecl;external libncurses;
-function winnstr(_para1:PWINDOW; _para2:PChar; _para3:Longint):Longint; cdecl;external libncurses;
+function winnstr(_para1:PWINDOW; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
 function winsch(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
 function winsdelln(_para1:PWINDOW; _para2:Longint):Longint; cdecl;external libncurses;
-function winsnstr(_para1:PWINDOW; _para2:PChar; _para3:Longint):Longint; cdecl;external libncurses;
+function winsnstr(_para1:PWINDOW; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
 { realised as inline function }
 //function wmove(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
 function wnoutrefresh(_para1:PWINDOW):Longint; cdecl;external libncurses;
@@ -470,16 +470,16 @@ function wvline(_para1:PWINDOW; _para2:chtype; _para3:Longint):Longint; cdecl;ex
  * These are also declared in <ncursesw/term.h>:
  *)
 
-function tigetflag(_para1:PChar):Longint; cdecl;external libncurses;
-function tigetnum(_para1:PChar):Longint; cdecl;external libncurses;
-function tigetstr(_para1:PChar):PChar;cdecl;external libncurses;
-function putp(_para1:PChar):Longint; cdecl;external libncurses;
+function tigetflag(_para1:PAnsiChar):Longint; cdecl;external libncurses;
+function tigetnum(_para1:PAnsiChar):Longint; cdecl;external libncurses;
+function tigetstr(_para1:PAnsiChar):PAnsiChar;cdecl;external libncurses;
+function putp(_para1:PAnsiChar):Longint; cdecl;external libncurses;
 
 var
 {$IFNDEF darwin}
-   ttytype : array of PChar cvar; external;  { needed for backward compatibility  }
+   ttytype : array of PAnsiChar cvar; external;  { needed for backward compatibility  }
 {$ELSE darwin}
-   ttytype : array of PChar external libncurses  name 'ttytype';
+   ttytype : array of PAnsiChar external libncurses  name 'ttytype';
 {$ENDIF darwin}
 
 (*
@@ -493,7 +493,7 @@ function vidputs(attrs:chtype; _putc:TPutc):Longint; cdecl;external libncurses;
 
 function erasewchar(_para1:Pwchar_t):Longint; cdecl;external libncurses;
 function getcchar(_para1:Pcchar_t; _para2:Pwchar_t; _para3:Pattr_t; _para4:PSmallInt; _para5:Pointer):Longint; cdecl;external libncurses;
-function key_name(_para1:wchar_t):PChar;cdecl;external libncurses;
+function key_name(_para1:wchar_t):PAnsiChar;cdecl;external libncurses;
 function killwchar(_para1:Pwchar_t):Longint; cdecl;external libncurses;
 function pecho_wchar(_para1:PWINDOW; _para2:Pcchar_t):Longint; cdecl;external libncurses;
 function setcchar(_para1:Pcchar_t; _para2:Pwchar_t; _para3:attr_t; _para4:Smallint; _para5:Pointer):Longint; cdecl;external libncurses;
@@ -568,9 +568,9 @@ function color_set(color_pair_number: Smallint; opts: Pointer): longint; inline;
 
 (*  pseudo functions  *)
 
-function wgetstr(win: PWINDOW; s: PChar): Longint;
-function getnstr(s: PChar;n: Longint): Longint; inline;
-function setterm(term: PChar): Longint; inline;
+function wgetstr(win: PWINDOW; s: PAnsiChar): Longint;
+function getnstr(s: PAnsiChar;n: Longint): Longint; inline;
+function setterm(term: PAnsiChar): Longint; inline;
 function fixterm: Longint; inline;
 function resetterm: Longint; inline;
 function saveterm: Longint; inline;
@@ -616,11 +616,11 @@ function box(win:PWINDOW; v,h :chtype):Longint; inline;
 function border(ls,rs,ts,bs,tl,tr,bl,br: chtype): longint; inline;
 function hline(ch:chtype; n:longint): longint; inline;
 function vline(ch:chtype; n:longint): longint; inline;
-function winstr(win: PWINDOW;s: PChar): longint; inline;
+function winstr(win: PWINDOW;s: PAnsiChar): longint; inline;
 function winchstr(win: PWINDOW; chstr: pchtype): longint; inline;
-function winsstr(win: PWINDOW;s: PChar): longint; inline;
+function winsstr(win: PWINDOW;s: PAnsiChar): longint; inline;
 function redrawwin(win: PWINDOW): longint; inline;
-function waddstr(win: PWINDOW;st: PChar): longint; inline;
+function waddstr(win: PWINDOW;st: PAnsiChar): longint; inline;
 function waddchstr(win: PWINDOW; chstr: pchtype): longint; inline;
 {
    pseudo functions for standard screen
@@ -628,8 +628,8 @@ function waddchstr(win: PWINDOW; chstr: pchtype): longint; inline;
 function addch(ch: chtype): longint; inline;
 function addchnstr(chstr: pchtype; n: longint): longint; inline;
 function addchstr(chstr: pchtype): longint; inline;
-function addnstr(str: PChar;n: longint): longint; inline;
-function addstr(str: PChar): longint; inline;
+function addnstr(str: PAnsiChar;n: longint): longint; inline;
+function addstr(str: PAnsiChar): longint; inline;
 function attroff(attrs: attr_t): longint; inline;
 function attron(attrs: attr_t): longint; inline;
 function attrset(attrs: attr_t): longint; inline;
@@ -643,17 +643,17 @@ function deleteln: longint; inline;
 function echochar(ch: chtype): longint; inline;
 function erase: longint; inline;
 function getch: longint; inline;
-function getstr(str: PChar): longint; inline;
+function getstr(str: PAnsiChar): longint; inline;
 function inch: chtype; inline;
 function inchnstr(chstr: pchtype;n: longint): longint; inline;
 function inchstr(chstr: pchtype): longint; inline;
-function innstr(str: PChar;n: longint): longint; inline;
+function innstr(str: PAnsiChar;n: longint): longint; inline;
 function insch(ch: chtype): longint; inline;
 function insdelln(n: longint): longint; inline;
 function insertln: longint; inline;
-function insnstr(str: PChar;n: longint): longint; inline;
-function insstr(str: PChar): longint; inline;
-function instr(str: PChar): longint; inline;
+function insnstr(str: PAnsiChar;n: longint): longint; inline;
+function insstr(str: PAnsiChar): longint; inline;
+function instr(str: PAnsiChar): longint; inline;
 function move(y,x: Smallint): longint; inline;
 function refresh: longint; inline;
 function scrl(n: longint): longint; inline;
@@ -671,42 +671,42 @@ function winsertln(win: PWINDOW): longint; inline;
 function mvwaddch(win: PWINDOW;y,x: Smallint; ch: chtype): longint; inline;
 function mvwaddchnstr(win: PWINDOW;y,x: Smallint; chstr: pchtype; n: longint): longint; inline;
 function mvwaddchstr(win: PWINDOW;y,x: Smallint; chstr: pchtype): longint; inline;
-function mvwaddnstr(win: PWINDOW;y,x: Smallint; str: PChar; n: longint): longint; inline;
-function mvwaddstr(win: PWINDOW;y,x: Smallint; str: PChar): longint; inline;
+function mvwaddnstr(win: PWINDOW;y,x: Smallint; str: PAnsiChar; n: longint): longint; inline;
+function mvwaddstr(win: PWINDOW;y,x: Smallint; str: PAnsiChar): longint; inline;
 function mvwdelch(win: PWINDOW; y,x: Smallint): longint;
 function mvwchgat(win: PWINDOW;y, x: Smallint; n: Longint;attr: attr_t;
                             color: Smallint; opts: Pointer): longint; inline;
 function mvwgetch(win: PWINDOW; y,x: Smallint): longint; inline;
-function mvwgetnstr(win: PWINDOW; y,x: Smallint; str: PChar; n: longint): longint; inline;
-function mvwgetstr(win: PWINDOW; y,x: Smallint; str: PChar): longint; inline;
+function mvwgetnstr(win: PWINDOW; y,x: Smallint; str: PAnsiChar; n: longint): longint; inline;
+function mvwgetstr(win: PWINDOW; y,x: Smallint; str: PAnsiChar): longint; inline;
 function mvwhline(win: PWINDOW; y,x: Smallint; ch: chtype; n: longint): longint; inline;
 function mvwinch(win: PWINDOW;y,x: Smallint): chtype; inline;
 function mvwinchnstr(win: PWINDOW;y,x: Smallint;chstr: pchtype; n: longint): longint; inline;
 function mvwinchstr(win: PWINDOW;y,x: Smallint;chstr: pchtype): longint; inline;
-function mvwinnstr(win: PWINDOW;y,x: Smallint;str: PChar;n: longint): longint; inline;
+function mvwinnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint; inline;
 function mvwinsch(win: PWINDOW;y,x: Smallint;ch: chtype): longint; inline;
-function mvwinsnstr(win: PWINDOW;y,x: Smallint;str: PChar;n: longint): longint; inline;
-function mvwinsstr(win: PWINDOW;y,x: Smallint;str: PChar): longint; inline;
-function mvwinstr(win: PWINDOW;y,x: Smallint;str: PChar): longint; inline;
+function mvwinsnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint; inline;
+function mvwinsstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint; inline;
+function mvwinstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint; inline;
 function mvwvline(win: PWINDOW;y,x: Smallint;ch: chtype;n: longint): longint; inline;
 function mvaddch(y,x: Smallint; ch: chtype): longint; inline;
 function mvaddchnstr(y,x: Smallint; chstr: pchtype;n: longint): longint; inline;
 function mvaddchstr(y,x: Smallint; chstr: pchtype): longint; inline;
-function mvaddnstr(y,x: Smallint; str: PChar;n: longint): longint; inline;
-function mvaddstr(y,x: Smallint; str: PChar): longint; inline;
+function mvaddnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint; inline;
+function mvaddstr(y,x: Smallint; str: PAnsiChar): longint; inline;
 function mvdelch(y,x: Smallint): longint; inline;
 function mvgetch(y,x: Smallint): longint; inline;
-function mvgetnstr(y,x: Smallint; str: PChar;n: longint): longint; inline;
-function mvgetstr(y,x: Smallint; str: PChar): longint; inline;
+function mvgetnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint; inline;
+function mvgetstr(y,x: Smallint; str: PAnsiChar): longint; inline;
 function mvhline(y,x: Smallint;ch: chtype;n: longint): longint; inline;
 function mvinch(y,x: Smallint): chtype; inline;
 function mvinchnstr(y,x: Smallint; chstr: pchtype;n: longint): longint; inline;
 function mvinchstr(y,x: Smallint; chstr: pchtype): longint; inline;
-function mvinnstr(y,x: Smallint; str: PChar;n: longint): longint; inline;
+function mvinnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint; inline;
 function mvinsch(y,x: Smallint;ch: chtype): longint; inline;
-function mvinsnstr(y,x: Smallint; str: PChar;n: longint): longint; inline;
-function mvinsstr(y,x: Smallint; str: PChar): longint; inline;
-function mvinstr(y,x: Smallint; str: PChar): longint; inline;
+function mvinsnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint; inline;
+function mvinsstr(y,x: Smallint; str: PAnsiChar): longint; inline;
+function mvinstr(y,x: Smallint; str: PAnsiChar): longint; inline;
 function mvvline(y,x: Smallint; ch:chtype; n:longint): longint; inline;
 function attr_get(attrs:Pattr_t; pair:PSmallint; opts:Pointer): longint; inline;
 function attr_off(attrs:attr_t; opts:Pointer): longint; inline;
@@ -853,7 +853,7 @@ const
    KEY_MAX = 511;       { Maximum key value is 0633    &0777 }
 
 type
-   //tnc_wacs= array [char] of cchar_t;
+   //tnc_wacs= array [AnsiChar] of cchar_t;
    tnc_wacs= array of cchar_t;
    pnc_wacs = ^tacs_map;
 
@@ -1068,30 +1068,30 @@ function wmove(win: PWINDOW; y,x: Smallint): Longint; inline;
 
 (* C varargs  procedures*)
 
-function tparm(_para1:PChar):PChar;cdecl; varargs; external libncurses; overload;
-function mvprintw(_para1:Longint; _para2:Longint; _para3:PChar):Longint; cdecl; varargs; external libncurses; overload;
-function mvscanw(_para1:Longint; _para2:Longint; _para3:PChar):Longint; cdecl; varargs;external libncurses; overload;
-function mvwprintw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PChar):Longint; cdecl; varargs; external libncurses; overload;
-function mvwscanw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PChar):Longint; cdecl; varargs; external libncurses; overload;
-function scanw(_para1:PChar):Longint; cdecl; varargs; external libncurses; overload;
-function wprintw(_para1:PWINDOW; _para2:PChar):Longint; cdecl; varargs; external libncurses; overload;
-function wscanw(_para1:PWINDOW; _para2:PChar):Longint; cdecl; varargs; external libncurses; overload;
-function printw(_para1:PChar):Longint; cdecl; varargs; external libncurses; overload;
-{function vwprintw(_para1:PWINDOW; _para2:PChar; _para3:va_list):Longint; cdecl;external libncurses;
-function vw_printw(_para1:PWINDOW; _para2:PChar; _para3:va_list):Longint; cdecl;external libncurses;
-function vwscanw(_para1:PWINDOW; _para2:PChar; _para3:va_list):Longint; cdecl;external libncurses;
-function vw_scanw(_para1:PWINDOW; _para2:PChar; _para3:va_list):Longint; cdecl;external libncurses;}
+function tparm(_para1:PAnsiChar):PAnsiChar;cdecl; varargs; external libncurses; overload;
+function mvprintw(_para1:Longint; _para2:Longint; _para3:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
+function mvscanw(_para1:Longint; _para2:Longint; _para3:PAnsiChar):Longint; cdecl; varargs;external libncurses; overload;
+function mvwprintw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
+function mvwscanw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
+function scanw(_para1:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
+function wprintw(_para1:PWINDOW; _para2:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
+function wscanw(_para1:PWINDOW; _para2:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
+function printw(_para1:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
+{function vwprintw(_para1:PWINDOW; _para2:PAnsiChar; _para3:va_list):Longint; cdecl;external libncurses;
+function vw_printw(_para1:PWINDOW; _para2:PAnsiChar; _para3:va_list):Longint; cdecl;external libncurses;
+function vwscanw(_para1:PWINDOW; _para2:PAnsiChar; _para3:va_list):Longint; cdecl;external libncurses;
+function vw_scanw(_para1:PWINDOW; _para2:PAnsiChar; _para3:va_list):Longint; cdecl;external libncurses;}
 
 {$IF DEFINED(FPC_OBJFPC) OR DEFINED(FPC_DELPHI)}
-{function tparm(_para1:PChar; args:array of const):PChar;cdecl;external libncurses; overload;
-function mvprintw(_para1:Longint; _para2:Longint; _para3:PChar; args:array of const):Longint; cdecl;external libncurses; overload;
-function mvscanw(_para1:Longint; _para2:Longint; _para3:PChar; args:array of const):Longint; cdecl;external libncurses; overload;
-function mvwprintw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PChar; args:array of const):Longint; cdecl;external libncurses; overload;
-function mvwscanw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PChar; args:array of const):Longint; cdecl;external libncurses; overload;
-function scanw(_para1:PChar; args:array of const):Longint; cdecl;external libncurses; overload;
-function wprintw(_para1:PWINDOW; _para2:PChar; args:array of const):Longint; cdecl;external libncurses; overload;
-function wscanw(_para1:PWINDOW; _para2:PChar; args:array of const):Longint; cdecl;external libncurses; overload;
-function printw(_para1:PChar; args:array of const):Longint; cdecl;external libncurses; overload;}
+{function tparm(_para1:PAnsiChar; args:array of const):PAnsiChar;cdecl;external libncurses; overload;
+function mvprintw(_para1:Longint; _para2:Longint; _para3:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
+function mvscanw(_para1:Longint; _para2:Longint; _para3:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
+function mvwprintw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
+function mvwscanw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
+function scanw(_para1:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
+function wprintw(_para1:PWINDOW; _para2:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
+function wscanw(_para1:PWINDOW; _para2:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
+function printw(_para1:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;}
 
 {$ENDIF}
 
@@ -1273,23 +1273,23 @@ begin
   color_set:=wcolor_set(stdscr,color_pair_number,opts);
 end;
 
-function wgetstr(win: PWINDOW; s: PChar): Longint;
+function wgetstr(win: PWINDOW; s: PAnsiChar): Longint;
 begin
   wgetstr := wgetnstr(win, s, -1);
 end;
 
-function getnstr(s: PChar;n: Longint): Longint;
+function getnstr(s: PAnsiChar;n: Longint): Longint;
 begin
   getnstr := wgetnstr(stdscr,s,n);
 end;
 
 {
   setupterm are declared in <ncursesw/term.h>:
-  int setupterm(char *term, int fildes, int *errret);
+  int setupterm(AnsiChar *term, int fildes, int *errret);
 }
-function setupterm(term:PChar; fildes:Longint; errret:Plongint):Longint; cdecl;external libncurses;
+function setupterm(term:PAnsiChar; fildes:Longint; errret:Plongint):Longint; cdecl;external libncurses;
 
-function setterm(term: PChar): Longint;
+function setterm(term: PAnsiChar): Longint;
 begin
   setterm:=setupterm(term,1,plongint(0));
 end;
@@ -1633,7 +1633,7 @@ begin
 end;
 
 
-function winstr(win: PWINDOW;s: PChar): longint;
+function winstr(win: PWINDOW;s: PAnsiChar): longint;
 begin
   winstr:=winnstr(win,s,-(1));
 end;
@@ -1643,7 +1643,7 @@ begin
   winchstr:=winchnstr(win,chstr,-(1));
 end;
 
-function winsstr(win: PWINDOW;s: PChar): longint;
+function winsstr(win: PWINDOW;s: PAnsiChar): longint;
 begin
   winsstr:=winsnstr(win,s,-(1));
 end;
@@ -1653,7 +1653,7 @@ begin
   redrawwin:=wredrawln(win,0,(win^._maxy)+1);
 end;
 
-function waddstr(win: PWINDOW;st: PChar): longint;
+function waddstr(win: PWINDOW;st: PAnsiChar): longint;
 begin
   waddstr:=waddnstr(win,st,-(1));
 end;
@@ -1681,12 +1681,12 @@ begin
   addchstr:=waddchstr(stdscr,chstr);
 end;
 
-function addnstr(str: PChar;n: longint): longint;
+function addnstr(str: PAnsiChar;n: longint): longint;
 begin
   addnstr:=waddnstr(stdscr,str,n);
 end;
 
-function addstr(str: PChar): longint;
+function addstr(str: PAnsiChar): longint;
 begin
   addstr:=waddnstr(stdscr,str,-(1));
 end;
@@ -1758,7 +1758,7 @@ begin
   getch:=wgetch(stdscr);
 end;
 
-function getstr(str: PChar): longint;
+function getstr(str: PAnsiChar): longint;
 begin
   getstr:=wgetstr(stdscr,str);
 end;
@@ -1778,7 +1778,7 @@ begin
   inchstr:=winchstr(stdscr,chstr);
 end;
 
-function innstr(str: PChar;n: longint): longint;
+function innstr(str: PAnsiChar;n: longint): longint;
 begin
   innstr:=winnstr(stdscr,str,n);
 end;
@@ -1798,17 +1798,17 @@ begin
   insertln:=winsdelln(stdscr,1);
 end;
 
-function insnstr(str: PChar;n: longint): longint;
+function insnstr(str: PAnsiChar;n: longint): longint;
 begin
   insnstr:=winsnstr(stdscr,str,n);
 end;
 
-function insstr(str: PChar): longint;
+function insstr(str: PAnsiChar): longint;
 begin
   insstr:=winsstr(stdscr,str);
 end;
 
-function instr(str: PChar): longint;
+function instr(str: PAnsiChar): longint;
 begin
   instr:=winstr(stdscr,str);
 end;
@@ -1894,7 +1894,7 @@ begin
      mvwaddchstr := waddchnstr(win,chstr,-(1))
 end;
 
-function mvwaddnstr(win: PWINDOW;y,x: Smallint;str: PChar;n: longint): longint;
+function mvwaddnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint;
 begin
   if wmove(win,y,x) = ERR then
      mvwaddnstr := ERR
@@ -1902,7 +1902,7 @@ begin
      mvwaddnstr := waddnstr(win,str,n);
 end;
 
-function mvwaddstr(win: PWINDOW;y,x: Smallint;str: PChar): longint;
+function mvwaddstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint;
 begin
   if wmove(win,y,x) = ERR then
      mvwaddstr := ERR
@@ -1935,7 +1935,7 @@ begin
     mvwgetch := wgetch(win);
 end;
 
-function mvwgetnstr(win: PWINDOW;y,x: Smallint;str: PChar;n: longint): longint;
+function mvwgetnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint;
 begin
   if wmove(win,y,x) = ERR then
     mvwgetnstr := ERR
@@ -1943,7 +1943,7 @@ begin
     mvwgetnstr := wgetnstr(win,str,n);
 end;
 
-function mvwgetstr(win: PWINDOW;y,x: Smallint;str: PChar): longint;
+function mvwgetstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint;
 begin
   if wmove(win,y,x) = ERR then
     mvwgetstr := ERR
@@ -1983,7 +1983,7 @@ begin
     mvwinchstr := winchnstr(win,chstr,-(1));
 end;
 
-function mvwinnstr(win: PWINDOW;y,x: Smallint;str: PChar;n: longint): longint;
+function mvwinnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint;
 begin
   if wmove(win,y,x) = ERR then
     mvwinnstr := ERR
@@ -1999,7 +1999,7 @@ begin
     mvwinsch := winsch(win,ch);
 end;
 
-function mvwinsnstr(win: PWINDOW;y,x: Smallint;str: PChar;n: longint): longint;
+function mvwinsnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint;
 begin
   if wmove(win,y,x) = ERR then
     mvwinsnstr := ERR
@@ -2007,7 +2007,7 @@ begin
     mvwinsnstr := winsnstr(win,str,n);
 end;
 
-function mvwinsstr(win: PWINDOW;y,x: Smallint;str: PChar): longint;
+function mvwinsstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint;
 begin
   if wmove(win,y,x) = ERR then
     mvwinsstr := ERR
@@ -2015,7 +2015,7 @@ begin
     mvwinsstr := winsnstr(win,str,-(1));
 end;
 
-function mvwinstr(win: PWINDOW;y,x: Smallint;str: PChar): longint;
+function mvwinstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint;
 begin
   if wmove(win,y,x) = ERR then
     mvwinstr := ERR
@@ -2055,7 +2055,7 @@ begin
     mvaddchstr := waddchnstr(stdscr,chstr,-(1));
 end;
 
-function mvaddnstr(y,x: Smallint; str: PChar;n: longint): longint;
+function mvaddnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint;
 begin
   if move(y,x) = ERR then
     mvaddnstr := ERR
@@ -2063,7 +2063,7 @@ begin
     mvaddnstr := waddnstr(stdscr,str,n);
 end;
 
-function mvaddstr(y,x: Smallint; str: PChar): longint;
+function mvaddstr(y,x: Smallint; str: PAnsiChar): longint;
 begin
   if move(y,x) = ERR then
     mvaddstr := ERR
@@ -2087,7 +2087,7 @@ begin
     mvgetch := wgetch(stdscr);
 end;
 
-function mvgetnstr(y,x: Smallint; str: PChar;n: longint): longint;
+function mvgetnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint;
 begin
   if move(y,x) = ERR then
     mvgetnstr := ERR
@@ -2095,7 +2095,7 @@ begin
     mvgetnstr := wgetnstr(stdscr,str,n);
 end;
 
-function mvgetstr(y,x: Smallint; str: PChar): longint;
+function mvgetstr(y,x: Smallint; str: PAnsiChar): longint;
 begin
   if move(y,x) = ERR then
     mvgetstr := ERR
@@ -2135,7 +2135,7 @@ begin
     mvinchstr := winchnstr(stdscr,chstr,-(1));
 end;
 
-function mvinnstr(y,x: Smallint; str: PChar;n: longint): longint;
+function mvinnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint;
 begin
   if move(y,x) = ERR then
     mvinnstr := ERR
@@ -2151,7 +2151,7 @@ begin
     mvinsch := winsch(stdscr,ch);
 end;
 
-function mvinsnstr(y,x: Smallint; str: PChar;n: longint): longint;
+function mvinsnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint;
 begin
   if move(y,x) = ERR then
     mvinsnstr := ERR
@@ -2159,7 +2159,7 @@ begin
     mvinsnstr := winsnstr(stdscr,str,n);
 end;
 
-function mvinsstr(y,x: Smallint; str: PChar): longint;
+function mvinsstr(y,x: Smallint; str: PAnsiChar): longint;
 begin
   if move(y,x) = ERR then
     mvinsstr := ERR
@@ -2167,7 +2167,7 @@ begin
     mvinsstr := winsstr(stdscr,str);
 end;
 
-function mvinstr(y,x: Smallint; str: PChar): longint;
+function mvinstr(y,x: Smallint; str: PAnsiChar): longint;
 begin
   if move(y,x) = ERR then
     mvinstr := ERR

+ 143 - 143
packages/ncurses/src/ocrt.pp

@@ -137,7 +137,7 @@ Unit oCrt;
           | 08/18/2000 | kjw |
           | 1) Added nkXXX constants for all(?) extended keys.
           | 2) Changed all uses of extended keys to use new nkXXX's.
-          | 3) Edit overloaded to return a nkXXX in ch rather that a char.
+          | 3) Edit overloaded to return a nkXXX in ch rather that a AnsiChar.
           | 4) Resize method added to tnWindow.
           | 5) AddChMap overloaded for preferred (easier) use with nkXXX's.
           | 08/24/2000 | kjw |
@@ -292,8 +292,8 @@ Const
 Type
    {*** structures to save a screen via nGrabScreen ***}
    pnOneRow = pchtype;
-   { a buffer for a max of 256 chtype items accessed via pchar }
-   tnOneRow = array [0..1023] of char;
+   { a buffer for a max of 256 chtype items accessed via PAnsiChar }
+   tnOneRow = array [0..1023] of AnsiChar;
    { a one way linked list of screen rows }
    pnRowBuf = ^tnRowBuf;
    tnRowBuf = Record
@@ -345,12 +345,12 @@ Type
       InsMode,
       ExitMode,
       AppendMode : boolean;
-      Special : string;
-      Picture : string;
+      Special : shortstring;
+      Picture : shortstring;
       CtrlColor : integer;
       ChMap : nChMap;
       Constructor Init(ft,ih,im,em,ap : boolean;
-                                  s,p : string;
+                                  s,p : shortstring;
                                    cc : integer;
                                    mp : nChMap);
       Destructor Done;
@@ -397,12 +397,12 @@ Type
          Procedure GotoXY(x,y : integer);
           Function WhereX : integer;
           Function WhereY : integer;
-          Function ReadKey : char;
+          Function ReadKey : AnsiChar;
          Procedure WriteAC(x,y,att,c : longint);
-         Procedure FWrite(x,y,att,z : integer; s : string);
+         Procedure FWrite(x,y,att,z : integer; s : shortstring);
          Procedure DrawBox(LineStyle,x1,y1,x2,y2,att : Integer);
-          Function GetHeader : string;
-         Procedure PutHeader(hdr : string; hcolor : integer; hpos : tnJustify);
+          Function GetHeader : shortstring;
+         Procedure PutHeader(hdr : shortstring; hcolor : integer; hpos : tnJustify);
          Procedure SetColor(att : integer);
           Function GetColor : integer;
           Function GetFrameColor : integer;
@@ -417,19 +417,19 @@ Type
           Function GetY : integer;
           Function IsFramed : boolean;
           Function IsVisible : Boolean;
-          Function Edit(x,y,att,z,CursPos:Integer;es:String;Var ch : integer) : String;
+          Function Edit(x,y,att,z,CursPos:Integer;es:shortstring;Var ch : integer) : shortstring;
           Function Edit(x,y,att,z,CursPos:Integer;es:LongInt;Var ch : integer) : LongInt;
           Function Edit(x,y,att,z,CursPos:Integer;es:Real;Var ch : integer) : Real;
-          Function Edit(x,y,att,z,CursPos:Integer;es:String;Var ch : Char) : String;
-          Function Edit(x,y,att,z,CursPos:Integer;es:LongInt;Var ch : Char) : LongInt;
-          Function Edit(x,y,att,z,CursPos:Integer;es:Real;Var ch : Char) : Real;
-          Function EditNumber(x,y,att,wid,decm : integer;bgd : string;initv,minv,maxv : real;var esc : boolean) : real;
-          Function EditNumber(x,y,att,wid,decm : integer;bgd : string;initv,minv,maxv : longint;var esc : boolean) : longint;
-          Function EditDate(x,y,att : integer;initv : string;var esc : boolean) : string;
+          Function Edit(x,y,att,z,CursPos:Integer;es:shortstring;Var ch : AnsiChar) : shortstring;
+          Function Edit(x,y,att,z,CursPos:Integer;es:LongInt;Var ch : AnsiChar) : LongInt;
+          Function Edit(x,y,att,z,CursPos:Integer;es:Real;Var ch : AnsiChar) : Real;
+          Function EditNumber(x,y,att,wid,decm : integer;bgd : shortstring;initv,minv,maxv : real;var esc : boolean) : real;
+          Function EditNumber(x,y,att,wid,decm : integer;bgd : shortstring;initv,minv,maxv : longint;var esc : boolean) : longint;
+          Function EditDate(x,y,att : integer;initv : shortstring;var esc : boolean) : shortstring;
    End;
 
    pnMenuStr = ^tnMenuStr;
-   tnMenuStr = array [0..79] of char; { storage for menu item text }
+   tnMenuStr = array [0..79] of AnsiChar; { storage for menu item text }
    pnMenu = ^tnMenu;
    tnMenu = Object
       Private
@@ -454,7 +454,7 @@ Type
          win : pnWindow;
          Procedure InitWin;
          Procedure ClearItem(idx : integer);
-         Procedure AddItem(i : integer; s : string);
+         Procedure AddItem(i : integer; s : shortstring);
          Function Selectable(idx : integer) : boolean;
          Function IsValid(idx : integer) : boolean;
       Public
@@ -470,12 +470,12 @@ Type
           Function Wind : pnWindow; { pointer to the window object }
          Procedure Move(_x,_y : integer);       { shortcut window move }
          Procedure Align(hpos,vpos : tnJustify);{ shortcut window align }
-         Procedure PutHeader(hdr : string; hcolor : integer; hpos : tnJustify);
+         Procedure PutHeader(hdr : shortstring; hcolor : integer; hpos : tnJustify);
          Procedure Clear;           { unpost and clear the menu item list }
-          Function Add(s : string) : integer; { append a menu item }
-         Procedure Insert(idx : integer; s : string); { insert a menu item }
+          Function Add(s : shortstring) : integer; { append a menu item }
+         Procedure Insert(idx : integer; s : shortstring); { insert a menu item }
          Procedure Remove(idx : integer);     { delete a menu item }
-         Procedure Change(idx : integer; s : string); { change an item }
+         Procedure Change(idx : integer; s : shortstring); { change an item }
          Procedure Active(idx : integer; b : boolean); { toggle gray }
           Function IsActive(idx : integer) : boolean; { item active ? }
          Procedure Spin(b : boolean);{ toggle item looping }
@@ -486,8 +486,8 @@ Type
           Function Rows(_r : integer) : integer; {get/set menu rows }
           Function Cols(_c : integer) : integer; {get/set menu columns }
           Function IsAssigned(idx : integer) : boolean; { valid & assigned }
-          Function GetMark : string; { return the item mark string }
-         Procedure SetMark(ms : string); { set the mark string }
+          Function GetMark : shortstring; { return the item mark shortstring }
+         Procedure SetMark(ms : shortstring); { set the mark string }
          Procedure Refresh;
          Procedure SetColor(att : byte);       { change text color }
          Procedure SetCursorColor(att : byte); { change cursor color }
@@ -516,11 +516,11 @@ Procedure nDelLine(win : pWindow);
 Procedure nGotoXY(win : pWindow; x,y : integer);
  Function nWhereX(win : pWindow) : integer;
  Function nWhereY(win :  pWindow) : integer;
- Function nReadkey(win : pWindow) : char;
- Function nReadln(win : pWindow) : string;
-Procedure nWrite(win : pWindow; s : string);
-Procedure nWriteln(win : pWindow; s : string);
-Procedure nWriteScr(win : pWindow; x,y,att : integer; s : string);
+ Function nReadkey(win : pWindow) : AnsiChar;
+ Function nReadln(win : pWindow) : shortstring;
+Procedure nWrite(win : pWindow; s : shortstring);
+Procedure nWriteln(win : pWindow; s : shortstring);
+Procedure nWriteScr(win : pWindow; x,y,att : integer; s : shortstring);
 Procedure nRefresh(win : pWindow);
 Procedure nScroll(win : pWindow; lines : integer; dir : tnUpDown);
 Procedure nDrawBox(win : pWindow; LineStyle,x1,y1,x2,y2,att : Integer);
@@ -552,34 +552,34 @@ Procedure nVLine(win : pwindow; col,row,attr,y : integer);
 Procedure nWriteAC(win : pwindow; x,y : integer; att,acs_char : longint);
  Function nIsBold(att : integer) : boolean;
  Function nSetColorPair(att : integer) : integer;
-Procedure nFWrite(win : pwindow; col,row,attrib : integer; clear : integer; s : string);
-Procedure nFWrite(col,row,attrib : integer; clear : integer; s : string);
- Function nSEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:String;Var ch : Char) : String;
- Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:String;Var ch : Char) : String;
- Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:LongInt;Var ch : Char) : LongInt;
- Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:Real;Var ch : Char) : Real;
- Function nEdit(x,y,att,z,CursPos:Integer;es:String;Var ch : Char) : String;
- Function nEdit(x,y,att,z,CursPos:Integer;es:LongInt;Var ch : Char) : LongInt;
- Function nEdit(x,y,att,z,CursPos:Integer;es:Real;Var ch : Char) : Real;
- Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:String;Var chv : integer) : String;
+Procedure nFWrite(win : pwindow; col,row,attrib : integer; clear : integer; s : shortstring);
+Procedure nFWrite(col,row,attrib : integer; clear : integer; s : shortstring);
+ Function nSEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:shortstring;Var ch : AnsiChar) : shortstring;
+ Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:shortstring;Var ch : AnsiChar) : shortstring;
+ Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:LongInt;Var ch : AnsiChar) : LongInt;
+ Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:Real;Var ch : AnsiChar) : Real;
+ Function nEdit(x,y,att,z,CursPos:Integer;es:shortstring;Var ch : AnsiChar) : shortstring;
+ Function nEdit(x,y,att,z,CursPos:Integer;es:LongInt;Var ch : AnsiChar) : LongInt;
+ Function nEdit(x,y,att,z,CursPos:Integer;es:Real;Var ch : AnsiChar) : Real;
+ Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:shortstring;Var chv : integer) : shortstring;
  Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:LongInt;Var ch : integer) : LongInt;
  Function nEdit(win : pwindow; x,y,att,z,CursPos:Integer;es:Real;Var ch : integer) : Real;
- Function nEdit(x,y,att,z,CursPos:Integer;es:String;Var ch : integer) : String;
+ Function nEdit(x,y,att,z,CursPos:Integer;es:shortstring;Var ch : integer) : shortstring;
  Function nEdit(x,y,att,z,CursPos:Integer;es:LongInt;Var ch : integer) : LongInt;
  Function nEdit(x,y,att,z,CursPos:Integer;es:Real;Var ch : integer) : Real;
- Function nEditNumber(win : pwindow; x,y,att,wid,decm : integer;bgd : string;initv,minv,maxv : real;var esc : boolean) : real;
- Function nEditNumber(win : pwindow; x,y,att,wid,decm : integer;bgd : string;initv,minv,maxv : longint;var esc : boolean) : longint;
- Function nEditNumber(x,y,att,wid,decm : integer;bgd : string;initv,minv,maxv : real;var esc : boolean) : real;
- Function nEditNumber(x,y,att,wid,decm : integer;bgd : string;initv,minv,maxv : longint;var esc : boolean) : longint;
- Function nEditDate(win : pwindow; x,y,att : integer;initv : string;var esc : boolean) : string;
- Function nEditDate(x,y,att : integer;initv : string;var esc : boolean) : string;
-Procedure nMakeWindow(var win : tnWindow;x1,y1,x2,y2,ta,ba,ha : integer;hasframe : boolean;hdrpos : tnJustify;hdrtxt : string);
-Procedure nMakeWindow(var win : pnWindow;x1,y1,x2,y2,ta,ba,ha : integer;hasframe : boolean;hdrpos : tnJustify;hdrtxt : string);
-Procedure nMakeMenu(var mnu : tnMenu;x,y,_w,_r,_c,ta,ca,ga,ba,ha : integer;hasframe : boolean;hdrpos : tnJustify;hdrtxt : string);
-Procedure nMakeMenu(var mnu : pnMenu;x,y,_w,_r,_c,ta,ca,ga,ba,ha : integer;hasframe : boolean;hdrpos : tnJustify;hdrtxt : string);
- Function nShowMessage(msg : string;matt : byte;hdr : string;hatt : byte;ack : boolean) : pnWindow;
- Function nReadScr(win : pWindow; x,y,n : integer) : string;
- Function nReadScr(x,y,n : integer) : string;
+ Function nEditNumber(win : pwindow; x,y,att,wid,decm : integer;bgd : shortstring;initv,minv,maxv : real;var esc : boolean) : real;
+ Function nEditNumber(win : pwindow; x,y,att,wid,decm : integer;bgd : shortstring;initv,minv,maxv : longint;var esc : boolean) : longint;
+ Function nEditNumber(x,y,att,wid,decm : integer;bgd : shortstring;initv,minv,maxv : real;var esc : boolean) : real;
+ Function nEditNumber(x,y,att,wid,decm : integer;bgd : shortstring;initv,minv,maxv : longint;var esc : boolean) : longint;
+ Function nEditDate(win : pwindow; x,y,att : integer;initv : shortstring;var esc : boolean) : shortstring;
+ Function nEditDate(x,y,att : integer;initv : shortstring;var esc : boolean) : shortstring;
+Procedure nMakeWindow(var win : tnWindow;x1,y1,x2,y2,ta,ba,ha : integer;hasframe : boolean;hdrpos : tnJustify;hdrtxt : shortstring);
+Procedure nMakeWindow(var win : pnWindow;x1,y1,x2,y2,ta,ba,ha : integer;hasframe : boolean;hdrpos : tnJustify;hdrtxt : shortstring);
+Procedure nMakeMenu(var mnu : tnMenu;x,y,_w,_r,_c,ta,ca,ga,ba,ha : integer;hasframe : boolean;hdrpos : tnJustify;hdrtxt : shortstring);
+Procedure nMakeMenu(var mnu : pnMenu;x,y,_w,_r,_c,ta,ca,ga,ba,ha : integer;hasframe : boolean;hdrpos : tnJustify;hdrtxt : shortstring);
+ Function nShowMessage(msg : shortstring;matt : byte;hdr : shortstring;hatt : byte;ack : boolean) : pnWindow;
+ Function nReadScr(win : pWindow; x,y,n : integer) : shortstring;
+ Function nReadScr(x,y,n : integer) : shortstring;
  Function nReadScrStr(win : pWindow; x,y,n : integer; buf : pchtype) : pchtype;
  Function nReadScrStr(x,y,n : integer; buf : pchtype) : pchtype;
  Function nReadScrColor(win : pWindow; x,y : integer) : integer;
@@ -593,7 +593,7 @@ Procedure nPopScreen(p : pnScreenBuf; x,y : integer; win : pWindow);
 Procedure nPopScreen(p : pnScreenBuf; x,y : integer);
 Procedure nPopScreen(p : pnScreenBuf);
 Procedure nReleaseScreen(p : pnScreenBuf);
- Function nCheckPxPicture(var s, Pic : string; var CPos : integer) : word;
+ Function nCheckPxPicture(var s, Pic : shortstring; var CPos : integer) : word;
 
 {$i ncrt.inc}
 {$i pxpic.inc}
@@ -781,20 +781,20 @@ Begin
    dorefresh := tmp_b;
 End;
 
-{ return the window border header string }
-Function tnWindow.GetHeader : string;
+{ return the window border header shortstring }
+Function tnWindow.GetHeader : shortstring;
 Begin
    GetHeader := header;
 End;
 
 {----------------------------------------------------------------------
-  put/replace a header string at the top of a bordered window
+  put/replace a header shortstring at the top of a bordered window
 
-     hdr = header string (top line of window, only if hasframe = true)
+     hdr = header shortstring (top line of window, only if hasframe = true)
   hcolor = header line color
-    hpos = justfication of header string, left, center, or right
+    hpos = justfication of header shortstring, left, center, or right
  ----------------------------------------------------------------------}
-Procedure tnWindow.PutHeader(hdr : string; hcolor : integer; hpos : tnJustify);
+Procedure tnWindow.PutHeader(hdr : shortstring; hcolor : integer; hpos : tnJustify);
 Var
    cp,
    hx,
@@ -951,7 +951,7 @@ Begin
    WhereY := nWhereY(wn);
 End;
 
-Function tnWindow.ReadKey : char;
+Function tnWindow.ReadKey : AnsiChar;
 Begin
    ReadKey := nReadKey(wn);
 End;
@@ -964,7 +964,7 @@ Begin
    dorefresh := tmp_b;
 End;
 
-Procedure tnWindow.FWrite(x,y,att,z : integer; s : string);
+Procedure tnWindow.FWrite(x,y,att,z : integer; s : shortstring);
 Begin
    tmp_b := dorefresh;
    dorefresh := visible;
@@ -1016,7 +1016,7 @@ Begin
    IsVisible := visible;
 End;
 
-Function tnWindow.Edit(x,y,att,z,CursPos:Integer;es:String;Var ch : integer) : String;
+Function tnWindow.Edit(x,y,att,z,CursPos:Integer;es:shortstring;Var ch : integer) : shortstring;
 var
    tmp_ec : tnec;
 Begin
@@ -1032,7 +1032,7 @@ Begin
    nEC := tmp_ec;
 End;
 
-Function tnWindow.Edit(x,y,att,z,CursPos:Integer;es:String;Var ch : Char) : String;
+Function tnWindow.Edit(x,y,att,z,CursPos:Integer;es:shortstring;Var ch : AnsiChar) : shortstring;
 var
    i : integer;
 Begin
@@ -1053,7 +1053,7 @@ Begin
    nEC := tmp_ec;
 End;
 
-Function tnWindow.Edit(x,y,att,z,CursPos:Integer;es:LongInt;Var ch : Char) : LongInt;
+Function tnWindow.Edit(x,y,att,z,CursPos:Integer;es:LongInt;Var ch : AnsiChar) : LongInt;
 var
    i : integer;
 Begin
@@ -1074,7 +1074,7 @@ Begin
    nEC := tmp_ec;
 End;
 
-Function tnWindow.Edit(x,y,att,z,CursPos:Integer;es:Real;Var ch : Char) : Real;
+Function tnWindow.Edit(x,y,att,z,CursPos:Integer;es:Real;Var ch : AnsiChar) : Real;
 var
    i : integer;
 Begin
@@ -1082,7 +1082,7 @@ Begin
    ch := chr(abs(i));
 End;
 
-Function tnWindow.EditNumber(x,y,att,wid,decm : integer;bgd : string;initv,minv,maxv : real;var esc : boolean) : real;
+Function tnWindow.EditNumber(x,y,att,wid,decm : integer;bgd : shortstring;initv,minv,maxv : real;var esc : boolean) : real;
 var
    tmp_ec : tnec;
 Begin
@@ -1094,7 +1094,7 @@ Begin
    nEC := tmp_ec;
 End;
 
-Function tnWindow.EditNumber(x,y,att,wid,decm : integer;bgd : string;initv,minv,maxv : longint;var esc : boolean) : longint;
+Function tnWindow.EditNumber(x,y,att,wid,decm : integer;bgd : shortstring;initv,minv,maxv : longint;var esc : boolean) : longint;
 var
    tmp_ec : tnec;
 Begin
@@ -1106,7 +1106,7 @@ Begin
    nEC := tmp_ec;
 End;
 
-Function tnWindow.EditDate(x,y,att : integer;initv : string;var esc : boolean) : string;
+Function tnWindow.EditDate(x,y,att : integer;initv : shortstring;var esc : boolean) : shortstring;
 var
    tmp_ec : tnec;
 Begin
@@ -1121,7 +1121,7 @@ End;
 {--------------------------- tnEC -------------------------------}
 
 Constructor tnEC.Init(ft,ih,im,em,ap : boolean;
-                                 s,p : string;
+                                 s,p : shortstring;
                                   cc : integer;
                                   mp : nChMap);
 Begin
@@ -1275,17 +1275,17 @@ Begin
 End;
 
 {---------------------------------
-  read input string from a window
+  read input shortstring from a window
  ---------------------------------}
-Function nReadln(win : pWindow) : string;
+Function nReadln(win : pWindow) : shortstring;
 Begin
    wgetstr(win,ps);
    nReadln := StrPas(ps);
 End;
 
-{ write a string to a window without refreshing screen }
+{ write a shortstring to a window without refreshing screen }
 { DON'T update PrevWn! }
-Procedure nWriteScr(win : pWindow; x,y,att : integer; s : string);
+Procedure nWriteScr(win : pWindow; x,y,att : integer; s : shortstring);
 Var
    tmp : pwindow;
 Begin
@@ -1345,7 +1345,7 @@ End;
   write a string to a window at the current cursor position
   followed by a newline
  -----------------------------------------------------------}
-Procedure nWriteln(win : pWindow; s : string);
+Procedure nWriteln(win : pWindow; s : shortstring);
 Begin
    waddstr(win,StrPCopy(ps,s+#10));
    If doRefresh Then wrefresh(win);
@@ -1585,10 +1585,10 @@ End;
    Clear  = clear line up to x position
    s      = string to write
  -------------------------------------------------------------------}
-Procedure nFWrite(win : pwindow; col,row,attrib : integer; clear : integer; s : string);
+Procedure nFWrite(win : pwindow; col,row,attrib : integer; clear : integer; s : shortstring);
 var
-   clr : array [0..255] of char;
-   cs : string;
+   clr : array [0..255] of AnsiChar;
+   cs : shortstring;
    sub : pWindow;
    x,y,
    mx,my,
@@ -1647,16 +1647,16 @@ Begin
 End;
 
 { overload - no pointer }
-Procedure nFWrite(col,row,attrib : integer; clear : integer; s : string);
+Procedure nFWrite(col,row,attrib : integer; clear : integer; s : shortstring);
 Begin
    nFWrite(ActiveWn,col,row,attrib,clear,s);
 End;
 
 { compatibility for the old function name }
 Function nSEdit(win : pwindow; x,y,att,z,CursPos:integer;
-                es:string;var ch : char) : string;
+                es:shortstring;var ch : AnsiChar) : shortstring;
 Var
-   s : string;
+   s : shortstring;
 Begin
    s := nEdit(win,x,y,att,z,CursPos,es,ch);
    nSEdit := s;
@@ -1669,10 +1669,10 @@ Function nEdit(win : pwindow;     { window to work in }
                att,               { color attribute }
                z,                 { right-most column of edit region }
                CursPos:integer;   { place cursor on this column at start }
-               es:string;         { initial value of string }
+               es:shortstring;         { initial value of shortstring }
                var chv : integer  { ordinal value of character typed, }
                                   { negative for extended keys }
-               ) : string;
+               ) : shortstring;
 Var
    ZMode,
    AppendMode,
@@ -1683,9 +1683,9 @@ Var
    pres,
    Index : integer;
    ts,
-   hes : string;
+   hes : shortstring;
    isextended : boolean;
-   ch : char;
+   ch : AnsiChar;
 
 {~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
 Procedure NewString;
@@ -1716,7 +1716,7 @@ End;
 
 {~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
 Procedure WriteChar;
-var s : string;
+var s : shortstring;
 Begin
    ts := es;
    If AppendMode Then Begin
@@ -2006,7 +2006,7 @@ begin
                     ch := ReadKey;
                     { make it a function key }
                     If ch in ['1'..'9'] Then Begin
-                       ch := Char(Ord(ch)+10);
+                       ch := AnsiChar(Ord(ch)+10);
                        chv := ord(ch) * (-1);
                     End Else ch := #27;
                     SEditExit := true;
@@ -2015,12 +2015,12 @@ begin
          Exit;
       End;
       #16 : Begin
-               { embed control characters in the string }
+               { embed control characters in the shortstring }
                ch := UpCase(ReadKey);
                If ch in ['@','2','A'..'Z'] Then Begin
                   ctrl := true;
                   If ch = '2' Then ch := '@';
-                  ch := Char(Ord(ch)-64);
+                  ch := AnsiChar(Ord(ch)-64);
                   chv := ord(ch);
                End;
             End;
@@ -2036,11 +2036,11 @@ end;
   The maps are 4 character strings interpreted as 2 sets of character
   pairs that represent the following:
 
-  1st char - If it is #0 then it is an extended char. Use the 2nd
+  1st AnsiChar - If it is #0 then it is an extended AnsiChar. Use the 2nd
              character to identify.
-  2nd char - Only used if 1st char is #0.
+  2nd AnsiChar - Only used if 1st AnsiChar is #0.
 
-  The first pair of the string is the actual key pressed.
+  The first pair of the shortstring is the actual key pressed.
   The second pair is what that key should be become.
 
   #0#59 = F1, extended key
@@ -2058,7 +2058,7 @@ end;
      #0#0#0#59  = map ^@ to F1
      #97#0#65#0 = map a to A
 }
-Procedure MapKey(var ch : char;var eflag : boolean);
+Procedure MapKey(var ch : AnsiChar;var eflag : boolean);
 Var
    i,
    cv : integer;
@@ -2135,7 +2135,7 @@ End;{ of nEdit }
 
 { compatibility for old ch type }
 Function nEdit(win : pwindow; x,y,att,z,CursPos:integer;
-                es:string;var ch : char) : string;
+                es:shortstring;var ch : AnsiChar) : shortstring;
 Var i : integer;
 Begin
    nEdit := nEdit(win,x,y,att,z,CursPos,es,i);
@@ -2150,7 +2150,7 @@ Begin
 End;
 
 Function nEdit(x,y,att,z,CursPos:integer;
-               es:string;var ch : char) : string;
+               es:string;var ch : AnsiChar) : string;
 Var i : integer;
 Begin
    nEdit := nEdit(ActiveWn,x,y,att,z,CursPos,es,i);
@@ -2165,7 +2165,7 @@ Begin
 End;
 
 Function nEdit(x,y,att,z,CursPos:integer;
-               es:longint;var ch : char) : longint;
+               es:longint;var ch : AnsiChar) : longint;
 Begin
    nEdit := nEdit(ActiveWn,x,y,att,z,CursPos,es,ch);
 End;
@@ -2189,7 +2189,7 @@ Begin
 End;
 
 Function nEdit(win : pwindow; x,y,att,z,CursPos:integer;
-               es:longint;var ch : char) : longint;
+               es:longint;var ch : AnsiChar) : longint;
 Var i : integer;
 Begin
    nEdit := nEdit(win,x,y,att,z,CursPos,es,i);
@@ -2204,7 +2204,7 @@ Begin
 End;
 
 Function nEdit(x,y,att,z,CursPos:integer;
-               es:real;var ch : char) : real;
+               es:real;var ch : AnsiChar) : real;
 Var i : integer;
 Begin
    nEdit := nEdit(ActiveWn,x,y,att,z,CursPos,es,i);
@@ -2242,7 +2242,7 @@ Begin
 End;
 
 Function nEdit(win : pwindow; x,y,att,z,CursPos:integer;
-               es:real;var ch : char) : real;
+               es:real;var ch : AnsiChar) : real;
 Var i : integer;
 Begin
    nEdit := nEdit(win,x,y,att,z,CursPos,es,i);
@@ -2264,7 +2264,7 @@ Function nEditNumber(
        att,              { edit field color attribute }
        wid,              { edit field width }
       decm : integer;    { number of decimal columns }
-       bgd : string;     { background string -
+       bgd : shortstring;     { background string -
                            if bgd = '', then no background
                            if bgd = a single character, then is used as the
                            background fill character.
@@ -2278,24 +2278,24 @@ Function nEditNumber(
 
 Const
    { up to 12 decimal places }
-   decs : string = '[#][#][#][#][#][#][#][#][#][#][#][#]';
+   decs : shortstring = '[#][#][#][#][#][#][#][#][#][#][#][#]';
 Var
    r : real;
-   s,s1,s2 : string;
+   s,s1,s2 : shortstring;
    i,
    e,
    bc,
    bx : integer;
-   ch : char;
-   fill : array [0..255] of char;
+   ch : AnsiChar;
+   fill : array [0..255] of AnsiChar;
    tmp_ec : tnEC;
 Begin
    tmp_ec := nEC;
    nEC.ExitMode := true;
    nEC.AppendMode := true;
    nEC.ClrChMap(0);
-   nEC.AddChMap(#7#0#0+Char(nKeyDel));
-   nEC.AddChMap(#8#0#0+Char(nKeyDel));
+   nEC.AddChMap(#7#0#0+AnsiChar(nKeyDel));
+   nEC.AddChMap(#8#0#0+AnsiChar(nKeyDel));
    If decm > (Length(decs) div 3) Then
       decm := (Length(decs) div 3);
    If decm >= wid Then decm := (wid - 1);
@@ -2355,7 +2355,7 @@ End;
 { overload - real, no pointer }
 Function nEditNumber(
    x,y,att,wid,decm : integer;
-                bgd : string;
+                bgd : shortstring;
               initv,
                minv,
                maxv : real;
@@ -2368,7 +2368,7 @@ End;
 Function nEditNumber(
                 win : pwindow;
    x,y,att,wid,decm : integer;
-                bgd : string;
+                bgd : shortstring;
               initv,
                minv,
                maxv : longint;
@@ -2383,7 +2383,7 @@ End;
 { overload - longint, no pointer }
 Function nEditNumber(
    x,y,att,wid,decm : integer;
-                bgd : string;
+                bgd : shortstring;
               initv,
                minv,
                maxv : longint;
@@ -2404,14 +2404,14 @@ Function nEditDate(
          x,           { edit field start column }
          y,           { edit field start row }
        att : integer; { edit field color attribute }
-     initv : string;     { initial value }
+     initv : shortstring;     { initial value }
    var esc : boolean     { if Esc key pressed = true, else = false }
-) : string;
+) : shortstring;
 
 Var
-   s : string;
+   s : shortstring;
    i : integer;
-   ch : char;
+   ch : AnsiChar;
    tmp_ec : tnEC;
 
 Begin
@@ -2432,9 +2432,9 @@ Begin
    End;
    If nCheckPxPicture(initv,nEC.Picture,i) <> 0 Then
       system.move(initv[1],s[1],Length(initv));
-   nEC.AddChMap(#7#0#0+Char(nKeyLeft));
-   nEC.AddChMap(#8#0#0+Char(nKeyLeft));
-   nEC.AddChMap(#0+Char(nKeyDel)+#0+Char(nKeyLeft));
+   nEC.AddChMap(#7#0#0+AnsiChar(nKeyLeft));
+   nEC.AddChMap(#8#0#0+AnsiChar(nKeyLeft));
+   nEC.AddChMap(#0+AnsiChar(nKeyDel)+#0+AnsiChar(nKeyLeft));
    Repeat
       s := nEdit(win,x,y,att,x+9,x,s,ch);
       If ch = #13 Then Begin
@@ -2448,7 +2448,7 @@ Begin
 End;
 
 { overload - no pointer }
-Function nEditDate(x,y,att : integer;initv : string;var esc : boolean) : string;
+Function nEditDate(x,y,att : integer;initv : shortstring;var esc : boolean) : shortstring;
 Begin
    nEditDate := nEditDate(ActiveWn,x,y,att,initv,esc);
 End;
@@ -2461,7 +2461,7 @@ Procedure nMakeWindow(
     ta,ba,ha : integer;
     hasframe : boolean;
     hdrpos : tnJustify;
-    hdrtxt : string);
+    hdrtxt : shortstring);
 Begin
    win.init(x1,y1,x2,y2,ta,hasframe,ba);
    If hdrtxt <> '' Then win.PutHeader(hdrtxt,ha,hdrpos);
@@ -2475,7 +2475,7 @@ Procedure nMakeWindow(
     ta,ba,ha : integer;
     hasframe : boolean;
     hdrpos : tnJustify;
-    hdrtxt : string);
+    hdrtxt : shortstring);
 Begin
    New(win,init(x1,y1,x2,y2,ta,hasframe,ba));
    If hdrtxt <> '' Then win^.PutHeader(hdrtxt,ha,hdrpos);
@@ -2498,9 +2498,9 @@ End;
      a nil pointer if ack = true,
      a pointer to the tnWindow object if ack = false
  --------------------------------------------------------------------}
-Function nShowMessage(msg : string;
+Function nShowMessage(msg : shortstring;
                      matt : byte;
-                      hdr : string;
+                      hdr : shortstring;
                      hatt : byte;
                       ack : boolean) : pnWindow;
 const
@@ -2586,13 +2586,13 @@ End;
     y - starting row.
     n - number of characters to read.
  ---------------------------------------}
-Function nReadScr(win : pWindow; x,y,n : integer) : string;
+Function nReadScr(win : pWindow; x,y,n : integer) : shortstring;
 Var
    i,idx : integer;
-   s : string;
+   s : shortstring;
    c : longint;
-   { array of char/attr values, 4 bytes each, max 256 }
-   buf : array[0..1023] of char;
+   { array of AnsiChar/attr values, 4 bytes each, max 256 }
+   buf : array[0..1023] of AnsiChar;
    p : pchtype;
 Begin
    s := '';
@@ -2609,7 +2609,7 @@ Begin
 End;
 
 { overload for current window }
-Function nReadScr(x,y,n : integer) : string;
+Function nReadScr(x,y,n : integer) : shortstring;
 Begin
    nReadScr := nReadScr(ActiveWn,x,y,n);
 End;
@@ -2672,7 +2672,7 @@ Begin
    nReadScrColor := nReadScrColor(ActiveWn,x,y);
 End;
 
-{ write a string with attributes, previously saved with nReadScrStr }
+{ write a shortstring with attributes, previously saved with nReadScrStr }
 Procedure nWriteScrStr(win : pWindow; x,y : integer; s : pchtype);
 Begin
    mvwaddchstr(win,y-1,x-1,s);
@@ -2814,7 +2814,7 @@ Procedure nMakeMenu(
     ta,ca,ga,ba,ha : integer;
     hasframe : boolean;
     hdrpos : tnJustify;
-    hdrtxt : string);
+    hdrtxt : shortstring);
 Begin
    mnu.init(x,y,_w,_r,_c,ta,ca,ga,hasframe,ba);
    If hdrtxt <> '' Then mnu.PutHeader(hdrtxt,ha,hdrpos);
@@ -2828,7 +2828,7 @@ Procedure nMakeMenu(
     ta,ca,ga,ba,ha : integer;
     hasframe : boolean;
     hdrpos : tnJustify;
-    hdrtxt : string);
+    hdrtxt : shortstring);
 Begin
    New(mnu,init(x,y,_w,_r,_c,ta,ca,ga,hasframe,ba));
    If hdrtxt <> '' Then mnu^.PutHeader(hdrtxt,ha,hdrpos);
@@ -2875,8 +2875,8 @@ Procedure tnMenu.Post;
 Var
    bx,by,
    mx,my : longint;
-   p : pchar;
-   a : array[0..SizeOf(tnS10)-1] of char;
+   p : PAnsiChar;
+   a : array[0..SizeOf(tnS10)-1] of AnsiChar;
 Begin
    { could already be posted }
    UnPost;
@@ -2929,7 +2929,7 @@ Const
    select = #13;
    cancel = #27;
 Var
-   key : char;
+   key : AnsiChar;
    i,cnt,
    prev,
    savecurs,
@@ -3016,7 +3016,7 @@ Begin
    win^.Move(_x,_y);
 End;
 
-Procedure tnMenu.PutHeader(hdr : string; hcolor : integer; hpos : tnJustify);
+Procedure tnMenu.PutHeader(hdr : shortstring; hcolor : integer; hpos : tnJustify);
 Begin
    win^.PutHeader(hdr,hcolor,hpos);
 End;
@@ -3060,7 +3060,7 @@ Begin
    End Else merr := E_BAD_ARGUMENT;
 End;
 
-Procedure tnMenu.AddItem(i : integer; s : string);
+Procedure tnMenu.AddItem(i : integer; s : shortstring);
 Const
    fwid : shortint = 0;
    iwid : shortint = 1;
@@ -3073,7 +3073,7 @@ Begin
       ClearItem(i);
       GetMem(items[i],Length(s)+1);
       StrPCopy(items[i]^,s);
-      pi[i] := new_item(pchar(items[i]),nil);
+      pi[i] := new_item(PAnsiChar(items[i]),nil);
       If pi[i] <> Nil Then Begin
          merr := E_OK;
          { Expand the window width if necessary. Limit to screen width.
@@ -3098,7 +3098,7 @@ Begin
    End Else merr := E_BAD_ARGUMENT;
 End;
 
-Function tnMenu.Add(s : string) : integer;
+Function tnMenu.Add(s : shortstring) : integer;
 Var
    i : integer;
 Begin
@@ -3111,7 +3111,7 @@ Begin
    If merr = E_OK Then Add := i;
 End;
 
-Procedure tnMenu.Insert(idx : integer; s : string);
+Procedure tnMenu.Insert(idx : integer; s : shortstring);
 Begin
    If IsValid(idx) Then Begin
       ClearItem(nMAXMENUITEMS);
@@ -3138,7 +3138,7 @@ Begin
    End Else merr := E_BAD_ARGUMENT;
 End;
 
-Procedure tnMenu.Change(idx : integer; s : string);
+Procedure tnMenu.Change(idx : integer; s : shortstring);
 Begin
    AddItem(idx,s);
 End;
@@ -3205,8 +3205,8 @@ Begin
    If _c > 0 Then c := _c;
 End;
 
-{ get the item indicator prefix string }
-Function tnMenu.GetMark : string;
+{ get the item indicator prefix shortstring }
+Function tnMenu.GetMark : shortstring;
 Begin
    If posted Then
       GetMark := StrPas(menu_mark(pm))
@@ -3214,8 +3214,8 @@ Begin
       GetMark := mark;
 End;
 
-{ set the item indicator prefix string }
-Procedure tnMenu.SetMark(ms : string);
+{ set the item indicator prefix shortstring }
+Procedure tnMenu.SetMark(ms : shortstring);
 Begin
    mark := ms;
 End;

+ 12 - 12
packages/ncurses/src/pxpic.inc

@@ -29,7 +29,7 @@
   { which holds the Paradox-form Picture.  If an error is  }
   { found the position of the error is placed in CPos.     }
 
-function nCheckPxPicture(var s, Pic : string;
+function nCheckPxPicture(var s, Pic : shortstring;
                       var CPos : integer) : word;
   const
     { flError, flCharOk and flFormatOK are constants used  }
@@ -49,7 +49,7 @@ function nCheckPxPicture(var s, Pic : string;
   { the benefit of the author.  It changes the Copy func.  }
   { so that its parameters represent start and end points  }
   { rather than a start point followed by a quantity.      }
-  function Copy(s : string; start, stop : integer) : string;
+  function Copy(s : shortstring; start, stop : integer) : shortstring;
   begin
     if stop < start then Copy:=''
     else Copy:=System.Copy(s,start,stop-start+1);
@@ -57,7 +57,7 @@ function nCheckPxPicture(var s, Pic : string;
 
   { Function FindMatch recursively locates the matching   }
   (* grouping characters for "{" and "[".                *)
-  function FindMatch(P : string) : integer;
+  function FindMatch(P : Shortstring) : integer;
   var
     i:integer;
     match:boolean;
@@ -84,7 +84,7 @@ function nCheckPxPicture(var s, Pic : string;
   { characters successfully resolved is returned in the    }
   { parameter resolved. When groups or repetitions are     }
   { encountered CP will call itself recursively.           }
-  function CP(var s : string; Pic : string; var CPos :
+  function CP(var s : shortstring; Pic : shortstring; var CPos :
               integer; var Resolved : integer) : word;
   const
      CharMatchSet = ['#', '?', '&', '''', '@', '!'];
@@ -139,7 +139,7 @@ function nCheckPxPicture(var s, Pic : string;
           s[i]:=Pic[index];
           if i>length(s) then begin
             CPos:=i;
-            s[0]:=char(i);
+            SetLength(s,i);
           end;
           inc(i);
           inc(index);
@@ -221,13 +221,13 @@ function nCheckPxPicture(var s, Pic : string;
     function Group:word;
     var
       result_: word;
-      TempS: string;
-      TempPic: string;
+      TempS: shortstring;
+      TempPic: shortstring;
       TempCPos: integer;
       PicEnd: integer;
       TempIndex: integer;
       SwapIndex:integer;
-      SwapPic : string;
+      SwapPic : shortstring;
     begin
       TempPic:=Copy(Pic,index,length(Pic));
       PicEnd:=FindMatch(TempPic);
@@ -270,17 +270,17 @@ function nCheckPxPicture(var s, Pic : string;
     var
       result_:word;
       count:integer;
-      TempPic:string;
-      TempS:string;
+      TempPic:shortstring;
+      TempS:shortstring;
       TempCPos:integer;
       TempIndex:integer;
       SwapIndex:integer;
-      SwapPic:string;
+      SwapPic:shortstring;
       PicEnd:integer;
       commit:boolean;
 
       procedure MakeCount;
-      var nstr:string;
+      var nstr:shortstring;
           code:integer;
       begin
         if Pic[index] in ['0'..'9'] then begin

+ 1 - 1
packages/ncurses/tests/t1menu.pp

@@ -9,7 +9,7 @@ uses
   ncurses, menu;
 
 const
-  choices: array[0..4] of PChar  =
+  choices: array[0..4] of PAnsiChar  =
                       (
                         'Choice 1',
                         'Choice 2',

+ 2 - 2
packages/ncurses/tests/t2menu.pp

@@ -29,7 +29,7 @@ begin
     width := mx;
 
   wattron(win,pair);
-  mvwaddnstr(win,starty,startx + st_middle(mx,width),PChar(tstr),width);
+  mvwaddnstr(win,starty,startx + st_middle(mx,width),PAnsiChar(tstr),width);
   wattroff(win,pair);
 end;
 
@@ -37,7 +37,7 @@ end;
 type
   PMinfo = ^TMinfo;
   TMinfo = record
-    n, d: PChar;
+    n, d: PAnsiChar;
   end;
 
 

+ 6 - 6
packages/ncurses/tests/t3form.pp

@@ -17,10 +17,10 @@ procedure draw;
 
 function randomchar: chtype;
 var
-  ch: Char = #0;
+  ch: AnsiChar = #0;
 begin
   while not (ch in ['0'..'9','A'..'Z','a'..'z']) do
-    ch := Char(Random(123));
+    ch := AnsiChar(Random(123));
   randomchar := chtype(ch);
 end;
 
@@ -42,10 +42,10 @@ begin
 end;
 
 const
-  enumval: array[0..2] of PChar = ('one', 'two', 'three');
-  desc: array[0..5] of PChar =
+  enumval: array[0..2] of PAnsiChar = ('one', 'two', 'three');
+  desc: array[0..5] of PAnsiChar =
               (
-                'TYPE_ALPHA    Char data, a min width 8',
+                'TYPE_ALPHA    AnsiChar data, a min width 8',
                 'TYPE_ENUM      one, two, three',
                 'TYPE_INTEGER     -300 .. 300',
                 'TYPE_NUMERIC    -30.0 .. 30.0',
@@ -108,7 +108,7 @@ try
    field[6] := nil;
 
    set_field_type(field[0],TYPE_ALPHA,8);
-   set_field_type(field[1],TYPE_ENUM,PPChar(enumval),0,0);
+   set_field_type(field[1],TYPE_ENUM,PPAnsiChar(enumval),0,0);
    set_field_type(field[2],TYPE_INTEGER,3,-300,300);
    set_field_type(field[3],TYPE_NUMERIC,8,-30.0,30.0);
    set_field_type(field[4],TYPE_REGEXP,'^http://.+\.(ru|net|com)\s*$');

+ 1 - 1
packages/ncurses/tests/tbackground.pp

@@ -15,7 +15,7 @@ begin
 	start_color();
 
 	pair_content(0, @f, @b);
-  printw(PChar('pair 0 contains (%d,%d)'#10), f, b);
+  printw(PAnsiChar('pair 0 contains (%d,%d)'#10), f, b);
 	getch();
 
 	printw('Initializing pair 1 to red/black'#10);

+ 2 - 2
packages/ncurses/tests/tclock.pp

@@ -188,7 +188,7 @@ begin
   attron(COLOR_PAIR(3));
   mvaddstr(cy - 5, cx - Length(title1) DIV 2, title1);
   mvaddstr(cy - 4, cx - Length(title2) DIV 2, title2);
-  mvaddstr(cy - 3, cx - Length(vstr) DIV 2, PChar(vstr));
+  mvaddstr(cy - 3, cx - Length(vstr) DIV 2, PAnsiChar(vstr));
   attroff(COLOR_PAIR(3));
   attron(A_UNDERLINE);
   mvaddstr(cy + 2, cx - Length(title3) DIV 2, title3);
@@ -242,7 +242,7 @@ begin
       Hour := Hour MOD 12;
 
       timestr := DateTimeToStr(Now);
-      mvaddstr(cy + round(sradius) - 4, cx - Length(timestr) DIV 2, PChar(timestr));
+      mvaddstr(cy + round(sradius) - 4, cx - Length(timestr) DIV 2, PAnsiChar(timestr));
 
       angle := Hour * _2PI / 12;
       dline(cy, cx, cy - A2Y(angle, hradius), cx + A2X(angle, hradius), chtype('*'),Hrest);

+ 1 - 1
packages/ncurses/tests/tevent.pp

@@ -30,7 +30,7 @@ begin
         chtype('2'): raw();
         chtype('3'): halfdelay(10);
       else
-        mvaddstr(LINES - 1, 1,PChar(Format('name:%-14s code:%d', [ keyname(ch), ch ] )));
+        mvaddstr(LINES - 1, 1,PAnsiChar(Format('name:%-14s code:%d', [ keyname(ch), ch ] )));
       end;
     until (ch = chtype('q')) OR (ch = KEY_F(10));
   finally

+ 3 - 3
packages/ncurses/tests/tmouse.pp

@@ -10,10 +10,10 @@ procedure draw;
 
 function randomchar: chtype;
 var
-  ch: Char = #0;
+  ch: AnsiChar = #0;
 begin
   while not (ch in ['0'..'9','A'..'Z','a'..'z']) do
-    ch := Char(Random(123));
+    ch := AnsiChar(Random(123));
   randomchar := chtype(ch);
 end;
 
@@ -56,7 +56,7 @@ begin
   begin
     mvwaddstr(win, 1, 1, '                  ');
     str := Format('y := %D, x := %D', [event.y, event.x]);
-    mvwaddstr(win, 1, 2, PChar(str));
+    mvwaddstr(win, 1, 2, PAnsiChar(str));
     wattron(win,A_BOLD);
     mvwaddch(win, 3, 9, mvinch(event.y,event.x ));
     wattroff(win,A_BOLD);

+ 2 - 2
packages/ncurses/tests/tnlshello.pp

@@ -38,9 +38,9 @@ begin
 
     TranslateResourcestrings('%s/messages.mo');
     wattron(win,A_BLINK OR A_BOLD OR COLOR_PAIR(2));
-    mvwaddstr(win,3,3, PChar(hello_world));
+    mvwaddstr(win,3,3, PAnsiChar(hello_world));
     wattroff(win,A_BLINK OR A_BOLD OR COLOR_PAIR(2));
-    mvwaddstr(win,5,3, PChar(press_key));
+    mvwaddstr(win,5,3, PAnsiChar(press_key));
     wrefresh(win);
     getch();
   finally