home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TPTOOL5.ZIP / STRLIB.INC < prev    next >
Encoding:
Text File  |  1987-03-28  |  1.1 KB  |  61 lines

  1.  
  2. const strlib_tag: string[90]
  3.    = #0'@(#)CURRENT_FILE LAST_UPDATE Long string library 1.0'#0;
  4. #log Long string library 1.0
  5.  
  6. {--
  7.  -- Long string package
  8.  --
  9.  -- Author: S.H.Smith, 25-apr-86
  10.  --
  11.  --}
  12.  
  13.  
  14. {--
  15.  -- Package specification
  16.  --
  17.  --}
  18.  
  19. type
  20.    string_buffer_pointer = ^string_buffer;
  21.    string_buffer = array[1..maxint] of char;
  22.  
  23.    long_string_record = record
  24.       length:      integer;
  25.       max_length:  integer;
  26.       value:       string_buffer_pointer;
  27.    end;
  28.  
  29.    long_string_pointer = ^long_string_record;
  30.    short_string = string[255];
  31.  
  32.  
  33. function new_long_string(max: integer): long_string_pointer;
  34. var
  35.    str: long_string_pointer;
  36.  
  37. begin
  38.    new(str);
  39.    with str^ do
  40.    begin
  41.       length := 0;
  42.       max_length := max;
  43.       getmem(value,str^.max_length);
  44.    end;
  45.    new_long_string := str;
  46. end;
  47.  
  48.  
  49. function copy_long_string(old: long_string_pointer): long_string_pointer;
  50. var
  51.    str: long_string_pointer;
  52.    i:   integer;
  53. begin
  54.    str := new_long_string(old^.max_length);
  55.    str^.length := old^.length
  56.    str^.value^ := old^.value;
  57.    copy_long_string := str;
  58. end;
  59.  
  60.  
  61.