瀏覽代碼

* PChar -> PAnsiChar

Michaël Van Canneyt 2 年之前
父節點
當前提交
bec52928dc

+ 43 - 43
packages/gmp/examples/gmp_test_impl.inc

@@ -204,7 +204,7 @@ const
   S = '123456';
 var
   z: mpz_t;
-  p: pchar;
+  p: PAnsiChar;
 begin
   mpz_init_set_ui(z, N);
   assert(mp_asprintf(p, Z_FMT, [@z]) = length(S));
@@ -219,7 +219,7 @@ const
   S = '123456';
 var
   z: mpz_t;
-  p: pchar;
+  p: PAnsiChar;
 begin
   mpz_init_set_ui(z, N);
   assert(mp_asprintf(p, Z_FMT, @z) = length(S));
@@ -234,7 +234,7 @@ const
   S = '123456';
 var
   z: mpz_t;
-  buf: pchar;
+  buf: PAnsiChar;
 begin
   mpz_init_set_ui(z, N);
   getmem(buf, length(S) + 1);
@@ -250,7 +250,7 @@ const
   S = '123456';
 var
   z: mpz_t;
-  buf: pchar;
+  buf: PAnsiChar;
 begin
   mpz_init_set_ui(z, N);
   getmem(buf, length(S) + 1);
@@ -266,7 +266,7 @@ const
   S = '123456';
 var
   z: mpz_t;
-  buf: pchar;
+  buf: PAnsiChar;
 begin
   mpz_init_set_ui(z, N);
   getmem(buf, length(S) + 1);
@@ -282,7 +282,7 @@ const
   S = '123456';
 var
   z: mpz_t;
-  buf: pchar;
+  buf: PAnsiChar;
 begin
   mpz_init_set_ui(z, N);
   getmem(buf, length(S) + 1);
@@ -299,7 +299,7 @@ const
 var q: mpq_t;
 begin
   mpq_init(q);
-  assert(mp_sscanf(pchar(inttostr(N) + '/' + inttostr(D)), Q_FMT, [@q]) = 1);
+  assert(mp_sscanf(PAnsiChar(inttostr(N) + '/' + inttostr(D)), Q_FMT, [@q]) = 1);
   assert(mpq_cmp_ui(q, N, D) = 0);
   mpq_clear(q);
 end;
@@ -311,7 +311,7 @@ const
 var q: mpq_t;
 begin
   mpq_init(q);
-  assert(mp_sscanf(pchar(inttostr(N) + '/' + inttostr(D)), Q_FMT, @q) = 1);
+  assert(mp_sscanf(PAnsiChar(inttostr(N) + '/' + inttostr(D)), Q_FMT, @q) = 1);
   assert(mpq_cmp_ui(q, N, D) = 0);
   mpq_clear(q);
 end;
@@ -384,7 +384,7 @@ procedure TTestGmpBinding.mpz_init_set_str_test;
 const N = 1000000;
 var rop: mpz_t;
 begin
-  assert(mpz_init_set_str(rop, pchar(inttostr(N)), BASE10) = 0);
+  assert(mpz_init_set_str(rop, PAnsiChar(inttostr(N)), BASE10) = 0);
   assert(mpz_get_si(rop) = N);
   mpz_clear(rop);
 end;
@@ -535,7 +535,7 @@ const OP_ = -1000000;
 var rop: mpz_t;
 begin
   mpz_init(rop);
-  assert(mpz_set_str(rop, pchar(inttostr(OP_)), BASE10) = 0);
+  assert(mpz_set_str(rop, PAnsiChar(inttostr(OP_)), BASE10) = 0);
   assert(mpz_get_si(rop) = OP_);
   mpz_clear(rop);
 end;
@@ -586,8 +586,8 @@ procedure TTestGmpBinding.mpz_get_str_test;
 const N = -1000000;
 var
   op: mpz_t;
-  p: pchar;
-  s0, s1: string;
+  p: PAnsiChar;
+  s0, s1: AnsiString;
 begin
   mpz_init_set_si(op, N);
   s0 := inttostr(N);
@@ -595,7 +595,7 @@ begin
   assert(s0 = p);
   freemem(p);
   setlength(s1, length(s0));
-  assert(pointer(mpz_get_str(pchar(s1), BASE10, op)) = pointer(s1));
+  assert(pointer(mpz_get_str(PAnsiChar(s1), BASE10, op)) = pointer(s1));
   assert(s0 = s1);
   mpz_clear(op)
 end;
@@ -2357,9 +2357,9 @@ const
 var rational: mpq_t;
 begin
   mpq_init(rational);
-  assert(mpq_set_str(rational, pchar(inttostr(OP_1) + '/' + inttostr(OP_2)), BASE10) = 0);
+  assert(mpq_set_str(rational, PAnsiChar(inttostr(OP_1) + '/' + inttostr(OP_2)), BASE10) = 0);
   assert(mpq_cmp_si(rational, OP_1, OP_2) = 0);
-  assert(mpq_set_str(rational, pchar(inttostr(OP_1) + '*' + inttostr(OP_2)), BASE10) <> 0);
+  assert(mpq_set_str(rational, PAnsiChar(inttostr(OP_1) + '*' + inttostr(OP_2)), BASE10) <> 0);
   mpq_clear(rational);
 end;
 
@@ -2426,7 +2426,7 @@ const
   OP_2 = 2;
 var
   op: mpq_t;
-  p: pchar;
+  p: PAnsiChar;
 begin
   mpq_init(op);
   mpq_set_si(op, OP_1, OP_2);
@@ -2866,7 +2866,7 @@ const N = -123;
 var rop: mpf_t;
 begin
   mpf_init(rop);
-  assert(mpf_set_str(rop, pchar(inttostr(N)), BASE10) = 0);
+  assert(mpf_set_str(rop, PAnsiChar(inttostr(N)), BASE10) = 0);
   assert(mpf_get_si(rop) = N);
   mpf_clear(rop);
 end;
@@ -2943,7 +2943,7 @@ const
   E = 1;
 var
   op: mpf_t;
-  p: pchar;
+  p: PAnsiChar;
   exp: mp_exp_t;
 begin
   mpf_init_set_d(op, N);
@@ -3438,7 +3438,7 @@ procedure TTestGmpBinding.mpf_init_set_str_test;
 const N = -123;
 var rop: mpf_t;
 begin
-  mpf_init_set_str(rop, pchar(inttostr(N)), BASE10);
+  mpf_init_set_str(rop, PAnsiChar(inttostr(N)), BASE10);
   assert(mpf_get_si(rop) = N);
   mpf_clear(rop);
 end;
@@ -3818,7 +3818,7 @@ end;
 
 procedure TTestGmpBinding.version_test;
 
-  function isvernum(s: string; first, last: integer): boolean;
+  function isvernum(s: AnsiString; first, last: integer): boolean;
   var i: integer;
   begin
     i := strtointdef(copy(s, first, last - first + 1), -1);
@@ -3827,7 +3827,7 @@ procedure TTestGmpBinding.version_test;
 
 const DOT = '.';
 var
-  v: string;
+  v: AnsiString;
   dot1, dot2: integer;
 begin
   v := version;
@@ -3943,7 +3943,7 @@ end;
 //  S = '123456';
 //var
 //  z: MPInteger;
-//  p: pchar;
+//  p: PAnsiChar;
 //begin
 //  z_init_set_ui(z, N);
 //  assert(asprintf(p, Z_FMT, [@z]) = length(S));
@@ -3958,7 +3958,7 @@ end;
 //  S = '123456';
 //var
 //  z: MPInteger;
-//  p: pchar;
+//  p: PAnsiChar;
 //begin
 //  z_init_set_ui(z, N);
 //  assert(asprintf(p, Z_FMT, @z) = length(S));
@@ -3973,7 +3973,7 @@ end;
 //  S = '123456';
 //var
 //  z: MPInteger;
-//  buf: pchar;
+//  buf: PAnsiChar;
 //begin
 //  z_init_set_ui(z, N);
 //  getmem(buf, length(S) + 1);
@@ -3989,7 +3989,7 @@ end;
 //  S = '123456';
 //var
 //  z: MPInteger;
-//  buf: pchar;
+//  buf: PAnsiChar;
 //begin
 //  z_init_set_ui(z, N);
 //  getmem(buf, length(S) + 1);
@@ -4005,7 +4005,7 @@ end;
 //  S = '123456';
 //var
 //  z: MPInteger;
-//  buf: pchar;
+//  buf: PAnsiChar;
 //begin
 //  z_init_set_ui(z, N);
 //  getmem(buf, length(S) + 1);
@@ -4021,7 +4021,7 @@ end;
 //  S = '123456';
 //var
 //  z: MPInteger;
-//  buf: pchar;
+//  buf: PAnsiChar;
 //begin
 //  z_init_set_ui(z, N);
 //  getmem(buf, length(S) + 1);
@@ -4038,7 +4038,7 @@ end;
 //var q: mpq_t;
 //begin
 //  q_init(q);
-//  assert(sscanf(pchar(inttostr(N) + '/' + inttostr(D)), Q_FMT, [@q]) = 1);
+//  assert(sscanf(PAnsiChar(inttostr(N) + '/' + inttostr(D)), Q_FMT, [@q]) = 1);
 //  assert(q_cmp_ui(q, N, D) = 0);
 //  q_clear(q);
 //end;
@@ -4050,7 +4050,7 @@ end;
 //var q: mpq_t;
 //begin
 //  q_init(q);
-//  assert(sscanf(pchar(inttostr(N) + '/' + inttostr(D)), Q_FMT, @q) = 1);
+//  assert(sscanf(PAnsiChar(inttostr(N) + '/' + inttostr(D)), Q_FMT, @q) = 1);
 //  assert(q_cmp_ui(q, N, D) = 0);
 //  q_clear(q);
 //end;
@@ -4295,8 +4295,8 @@ procedure TTestGmpExtensions.z_get_str_test;
 const N = -1000000;
 var
   op: MPInteger;
-  p: pchar;
-  s, s0, s1: String;
+  p: PAnsiChar;
+  s, s0, s1: AnsiString;
 begin
   z_init_set_si(op, N);
   s0 := inttostr(N);
@@ -4306,7 +4306,7 @@ begin
   assert(p = s0);
   freemem(p);
   setlength(s1, length(s0));
-  assert(pointer(z_get_str(pchar(s1), BASE10, op)) = pointer(s1));
+  assert(pointer(z_get_str(PAnsiChar(s1), BASE10, op)) = pointer(s1));
   assert(s1 = s0);
 end;
 
@@ -5935,9 +5935,9 @@ const
 var rational: MPRational;
 begin
   q_init(rational);
-  assert(q_set_str(rational, pchar(inttostr(OP_1) + '/' + inttostr(OP_2)), BASE10));
+  assert(q_set_str(rational, PAnsiChar(inttostr(OP_1) + '/' + inttostr(OP_2)), BASE10));
   assert(q_cmp_si(rational, OP_1, OP_2) = 0);
-  assert(not q_set_str(rational, pchar(inttostr(OP_1) + '*' + inttostr(OP_2)), BASE10));
+  assert(not q_set_str(rational, PAnsiChar(inttostr(OP_1) + '*' + inttostr(OP_2)), BASE10));
 end;
 
 procedure TTestGmpExtensions.q_swap_test;
@@ -5997,8 +5997,8 @@ const
   OP_2 = 2;
 var
   op: MPRational;
-  p: pchar;
-  s, s2: string;
+  p: PAnsiChar;
+  s, s2: AnsiString;
 begin
   q_init(op);
   q_set_si(op, OP_1, OP_2);
@@ -6008,7 +6008,7 @@ begin
   assert(p = inttostr(OP_1) + '/' + inttostr(OP_2));
   freemem(p);
   setlength(s2, length(inttostr(OP_1) + '/' + inttostr(OP_2)));
-  assert(pointer(q_get_str(pchar(s2), BASE10, op)) = pointer(s2));
+  assert(pointer(q_get_str(PAnsiChar(s2), BASE10, op)) = pointer(s2));
   assert(s2 = inttostr(OP_1) + '/' + inttostr(OP_2));
 end;
 
@@ -6484,9 +6484,9 @@ const
   E = 1;
 var
   op: MPFloat;
-  p: pchar;
+  p: PAnsiChar;
   exp: mp_exp_t;
-  s1: string;
+  s1: AnsiString;
 begin
   f_init_set_d(op, N);
   p := f_get_str(nil, exp, BASE10, length(S), op);
@@ -6494,7 +6494,7 @@ begin
   assert(exp = E);
   freemem(p);
   setlength(s1, length(S));
-  assert(pointer(f_get_str(pchar(s1), exp, BASE10, length(s), op)) = pointer(s1));
+  assert(pointer(f_get_str(PAnsiChar(s1), exp, BASE10, length(s), op)) = pointer(s1));
   assert(s1 = S);
   s1 := f_get_str(exp, BASE10, length(S), op);
   assert(s1 = S);
@@ -7315,7 +7315,7 @@ const
   S = '123456';
 var
   op: MPFloat;
-  r: string;
+  r: AnsiString;
 begin
   f_init_set_d(op, N);
   r := op;
@@ -7441,7 +7441,7 @@ const
   S = '123456';
 var
   op: MPInteger;
-  r: string;
+  r: AnsiString;
 begin
   z_init_set_ui(op, N);
   r := op;
@@ -7565,7 +7565,7 @@ const
   S = '5/3';
 var
   op: MPRational;
-  r: string;
+  r: AnsiString;
 begin
   q_init(op);
   q_set_si(op, N, D);

+ 3 - 3
packages/gmp/examples/printf_example2.pas

@@ -17,10 +17,10 @@ begin
   bits := f_get_default_prec;
   digits := floor(bits * LOG_10_2);
   f := f_sqrt_ui(N);
-  writeln(format('Sqrt(%d) to %d digits (%d bits) = %s', [N, digits, bits, string(f)]));
+  writeln(format('Sqrt(%d) to %d digits (%d bits) = %s', [N, digits, bits, AnsiString(f)]));
   f := f ** 2;
-  writeln(format('Squared back = %s', [string(f)]));
+  writeln(format('Squared back = %s', [AnsiString(f)]));
   f -= N;
-  writeln(format('Minus %d = %s', [N, string(f)]));
+  writeln(format('Minus %d = %s', [N, AnsiString(f)]));
 end.
 

+ 3 - 3
packages/gmp/examples/scanf_example2.pas

@@ -7,14 +7,14 @@ uses
 
 var
   n, sqr: MPInteger;
-  s: string;
+  s: AnsiString;
 begin
   write('Please enter an integer of any length: ');
   readln(s);
   z_init(n);
-  if mp_sscanf(pchar(s), '%Zd', n.ptr) = 1 then begin
+  if mp_sscanf(PAnsiChar(s), '%Zd', n.ptr) = 1 then begin
     sqr := n ** 2;
-    writeln(format('%s^2 = %s', [string(n), string(sqr)]));
+    writeln(format('%s^2 = %s', [AnsiString(n), AnsiString(sqr)]));
   end else
     writeln('Failed to parse an integer from your input');
 end.

+ 71 - 71
packages/gmp/src/gmp.pas

@@ -234,29 +234,29 @@ function mp_urandomm_ui(var state: randstate_t; n: valuint): valuint; cdecl; ext
 // ---- Formatted Input/Output ----
 
 { Form a null-terminated string in a block of memory obtained from the current memory allocation function }
-function mp_asprintf(out pp: pchar; fmt: pchar; args: array of const): longint; cdecl; external LIB name '__gmp_asprintf';
+function mp_asprintf(out pp: PAnsiChar; fmt: PAnsiChar; args: array of const): longint; cdecl; external LIB name '__gmp_asprintf';
 { Form a null-terminated string in a block of memory obtained from the current memory allocation function }
-function mp_asprintf(out pp: pchar; fmt: pchar): longint; cdecl; varargs; external LIB name '__gmp_asprintf';
+function mp_asprintf(out pp: PAnsiChar; fmt: PAnsiChar): longint; cdecl; varargs; external LIB name '__gmp_asprintf';
 { Print to the standard output stdout. Return the number of characters written, or −1 if an error occurred. }
-function mp_printf(fmt: pchar; args: array of const): longint; cdecl; external LIB name '__gmp_printf';
+function mp_printf(fmt: PAnsiChar; args: array of const): longint; cdecl; external LIB name '__gmp_printf';
 { Print to the standard output stdout. Return the number of characters written, or −1 if an error occurred. }
-function mp_printf(fmt: pchar): longint; cdecl; varargs; external LIB name '__gmp_printf';
+function mp_printf(fmt: PAnsiChar): longint; cdecl; varargs; external LIB name '__gmp_printf';
 { Form a null-terminated string in buf. No more than size bytes will be written. }
-function mp_snprintf(buf: pchar; size: sizeuint; fmt: pchar; args: array of const): longint; cdecl; external LIB name '__gmp_snprintf';
+function mp_snprintf(buf: PAnsiChar; size: sizeuint; fmt: PAnsiChar; args: array of const): longint; cdecl; external LIB name '__gmp_snprintf';
 { Form a null-terminated string in buf. No more than size bytes will be written. }
-function mp_snprintf(buf: pchar; size: sizeuint; fmt: pchar): longint; cdecl; varargs; external LIB name '__gmp_snprintf';
+function mp_snprintf(buf: PAnsiChar; size: sizeuint; fmt: PAnsiChar): longint; cdecl; varargs; external LIB name '__gmp_snprintf';
 { Form a null-terminated string in buf. Return the number of characters written, excluding the terminating null. }
-function mp_sprintf(buf, fmt: pchar; args: array of const): longint; cdecl; external LIB name '__gmp_sprintf';
+function mp_sprintf(buf, fmt: PAnsiChar; args: array of const): longint; cdecl; external LIB name '__gmp_sprintf';
 { Form a null-terminated string in buf. Return the number of characters written, excluding the terminating null. }
-function mp_sprintf(buf, fmt: pchar): longint; cdecl; varargs; external LIB name '__gmp_sprintf';
+function mp_sprintf(buf, fmt: PAnsiChar): longint; cdecl; varargs; external LIB name '__gmp_sprintf';
 { Read from the standard input stdin }
-function mp_scanf(fmt: pchar; args: array of const): longint; cdecl; external LIB name '__gmp_scanf';
+function mp_scanf(fmt: PAnsiChar; args: array of const): longint; cdecl; external LIB name '__gmp_scanf';
 { Read from the standard input stdin }
-function mp_scanf(fmt: pchar): longint; cdecl; varargs; external LIB name '__gmp_scanf';
+function mp_scanf(fmt: PAnsiChar): longint; cdecl; varargs; external LIB name '__gmp_scanf';
 { Read from a null-terminated string s }
-function mp_sscanf(s, fmt: pchar; args: array of const): longint; cdecl; external LIB name '__gmp_sscanf';
+function mp_sscanf(s, fmt: PAnsiChar; args: array of const): longint; cdecl; external LIB name '__gmp_sscanf';
 { Read from a null-terminated string s }
-function mp_sscanf(s, fmt: pchar): longint; cdecl; varargs; external LIB name '__gmp_sscanf';
+function mp_sscanf(s, fmt: PAnsiChar): longint; cdecl; varargs; external LIB name '__gmp_sscanf';
 
 // ---- integer Functions ----
 
@@ -390,7 +390,7 @@ function mpz_get_d_2exp(out exp: valsint; var op: mpz_t): double; cdecl; externa
 { Return the value of op as a signed long }
 function mpz_get_si(var op: mpz_t): valsint; cdecl; external LIB name '__gmpz_get_si';
 { Convert op to a string of digits in base base. The base argument may vary from 2 to 62 or from −2 to −36. If str is NULL, the result string is allocated using the current allocation function }
-function mpz_get_str(str: pchar; base: longint; var op: mpz_t): pchar; cdecl; external LIB name '__gmpz_get_str';
+function mpz_get_str(str: PAnsiChar; base: longint; var op: mpz_t): PAnsiChar; cdecl; external LIB name '__gmpz_get_str';
 { Return the value of op as an unsigned long }
 function mpz_get_ui(var op: mpz_t): valuint; cdecl; external LIB name '__gmpz_get_ui';
 { Return limb number n from op }
@@ -410,7 +410,7 @@ procedure mpz_init_set_d(out rop: mpz_t; op: double); cdecl; external LIB name '
 { Initialize rop with limb space and set the initial numeric value from op }
 procedure mpz_init_set_si(out rop: mpz_t; op: valsint); cdecl; external LIB name '__gmpz_init_set_si';
 { Initialize rop and set its value like mpz_set_str }
-function mpz_init_set_str(out rop: mpz_t; str: pchar; base: longint): longint; cdecl; external LIB name '__gmpz_init_set_str';
+function mpz_init_set_str(out rop: mpz_t; str: PAnsiChar; base: longint): longint; cdecl; external LIB name '__gmpz_init_set_str';
 { Initialize rop with limb space and set the initial numeric value from op }
 procedure mpz_init_set_ui(out rop: mpz_t; op: valuint); cdecl; external LIB name '__gmpz_init_set_ui';
 { Compute the inverse of op1 modulo op2 and put the result in rop }
@@ -497,7 +497,7 @@ procedure mpz_set_q(var rop: mpz_t; var op: mpq_t); cdecl; external LIB name '__
 { Set the value of rop from op }
 procedure mpz_set_si(var rop: mpz_t; op: valsint); cdecl; external LIB name '__gmpz_set_si';
 { Set the value of rop from str, a null-terminated C string in base base. White space is allowed in the string, and is simply ignored. }
-function mpz_set_str(var rop: mpz_t; str: pchar; base: longint): longint; cdecl; external LIB name '__gmpz_set_str';
+function mpz_set_str(var rop: mpz_t; str: PAnsiChar; base: longint): longint; cdecl; external LIB name '__gmpz_set_str';
 { Set the value of rop from op }
 procedure mpz_set_ui(var rop: mpz_t; op: valuint); cdecl; external LIB name '__gmpz_set_ui';
 { Set bit bit_index in rop }
@@ -580,7 +580,7 @@ procedure mpq_get_den(var denominator: mpz_t; var rational: mpq_t); cdecl; exter
 { Convert op to a double, truncating if necessary (ie. rounding towards zero) }
 function mpq_get_d(var op: mpq_t): double; cdecl; external LIB name '__gmpq_get_d';
 { Convert op to a string of digits in base base }
-function mpq_get_str(str: pchar; base: longint; var op: mpq_t): pchar; cdecl; external LIB name '__gmpq_get_str';
+function mpq_get_str(str: PAnsiChar; base: longint; var op: mpq_t): PAnsiChar; cdecl; external LIB name '__gmpq_get_str';
 { Initialize dest rational and set it to 0/1 }
 procedure mpq_init(out dest_rational: mpq_t); cdecl; external LIB name '__gmpq_init';
 { Set inverted_number to 1/number }
@@ -604,7 +604,7 @@ procedure mpq_set_num(var rational: mpq_t; var numerator: mpz_t); cdecl; externa
 { Set the value of rop to op1/op2 }
 procedure mpq_set_si(var rop: mpq_t; op1: valsint; op2: valuint); cdecl; external LIB name '__gmpq_set_si';
 { Set rop from a null-terminated string str in the given base }
-function mpq_set_str(var rop: mpq_t; str: pchar; base: longint): longint; cdecl; external LIB name '__gmpq_set_str';
+function mpq_set_str(var rop: mpq_t; str: PAnsiChar; base: longint): longint; cdecl; external LIB name '__gmpq_set_str';
 { Set the value of rop to op1/op2 }
 procedure mpq_set_ui(var rop: mpq_t; op1, op2: valuint); cdecl; external LIB name '__gmpq_set_ui';
 { Assign rop from op }
@@ -670,7 +670,7 @@ function mpf_get_prec(var op: mpf_t): valuint; cdecl; external LIB name '__gmpf_
 { Convert op to a long, truncating any fraction part }
 function mpf_get_si(var op: mpf_t): valsint; cdecl; external LIB name '__gmpf_get_si';
 { Convert op to a string of digits in base base }
-function mpf_get_str(str: pchar; out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: mpf_t): pchar; cdecl; external LIB name '__gmpf_get_str';
+function mpf_get_str(str: PAnsiChar; out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: mpf_t): PAnsiChar; cdecl; external LIB name '__gmpf_get_str';
 { Convert op to a unsigned long, truncating any fraction part }
 function mpf_get_ui(var op: mpf_t): valuint; cdecl; external LIB name '__gmpf_get_ui';
 { Initialize x to 0 }
@@ -684,7 +684,7 @@ procedure mpf_init_set_d(out rop: mpf_t; op: double); cdecl; external LIB name '
 { Initialize rop and set its value from op }
 procedure mpf_init_set_si(out rop: mpf_t; op: valsint); cdecl; external LIB name '__gmpf_init_set_si';
 { Initialize rop and set its value from the string in str }
-function mpf_init_set_str(out rop: mpf_t; str: pchar; base: longint): longint; cdecl; external LIB name '__gmpf_init_set_str';
+function mpf_init_set_str(out rop: mpf_t; str: PAnsiChar; base: longint): longint; cdecl; external LIB name '__gmpf_init_set_str';
 { Initialize rop and set its value from op }
 procedure mpf_init_set_ui(out rop: mpf_t; op: valuint); cdecl; external LIB name '__gmpf_init_set_ui';
 { Return non-zero if op is an integer }
@@ -718,7 +718,7 @@ procedure mpf_set_q(var rop: mpf_t; var op: mpq_t); cdecl; external LIB name '__
 { Set the value of rop from op }
 procedure mpf_set_si(var rop: mpf_t; op: valsint); cdecl; external LIB name '__gmpf_set_si';
 { Set the value of rop from the string in str }
-function mpf_set_str(var rop: mpf_t; str: pchar; base: longint): longint; cdecl; external LIB name '__gmpf_set_str';
+function mpf_set_str(var rop: mpf_t; str: PAnsiChar; base: longint): longint; cdecl; external LIB name '__gmpf_set_str';
 { Set the value of rop from op }
 procedure mpf_set_ui(var rop: mpf_t; op: valuint); cdecl; external LIB name '__gmpf_set_ui';
 { Set the value of rop from op }
@@ -778,7 +778,7 @@ function mpn_gcd(rp, s1p: mpn_ptr; s1n: mp_size_t; s2p: mpn_ptr; s2n: mp_size_t)
 function mpn_gcd_1(s1p: mpn_ptr; s1n: mp_size_t; s2limb: mp_limb_t): mp_limb_t; cdecl; external LIB name '__gmpn_gcd_1';
 { Calculate the greatest common divisor of [s1p, s1n] and [s2p, s2n] }
 function mpn_gcdext(r1p, r2p: mpn_ptr; out r2n: mp_size_t; s1p: mpn_ptr; s1n: mp_size_t; s2p: mpn_ptr; s2n: mp_size_t): mp_size_t; cdecl; external LIB name '__gmpn_gcdext';
-{ Convert [s1p, s1n] to a raw unsigned char array at str in base base, and return the number of characters produced }
+{ Convert [s1p, s1n] to a raw unsigned AnsiChar array at str in base base, and return the number of characters produced }
 function mpn_get_str(str: pbyte; base: longint; s1p: mpn_ptr; s1n: mp_size_t):sizeuint; cdecl; external LIB name '__gmpn_get_str';
 { Compute the hamming distance between [s1p, n] and [s2p, n], which is the number of bit positions where the two operands have different bit values }
 function mpn_hamdist(s1p, s2p: mpn_ptr; n: mp_size_t): valuint; cdecl; external LIB name '__gmpn_hamdist';
@@ -831,8 +831,8 @@ procedure mpn_tdiv_qr(qp, rp: mpn_ptr; qxn: mp_size_t; np: mpn_ptr; nn: mp_size_
 function bits_per_limb: longint;
 { Some GMP functions may set this thread unsafe variable. Better avoid using it. }
 function errno: longint;
-{ GMP version string a.b.c }
-function version: string;
+{ GMP version String a.b.c }
+function version: Ansistring;
 
 // ==== ext bindings =====
 
@@ -1030,9 +1030,9 @@ function z_get_d_2exp(out exp: valsint; var op: MPInteger): double;
 { Return the value of op as a signed long }
 function z_get_si(op: MPInteger): valsint;
 { Convert op to a string of digits in base base. The base argument may vary from 2 to 62 or from −2 to −36. }
-function z_get_str(base: longint; var op: MPInteger): string;
+function z_get_str(base: longint; var op: MPInteger): AnsiString;
 { Convert op to a string of digits in base base. The base argument may vary from 2 to 62 or from −2 to −36. If str is NULL, the result string is allocated using the current allocation function }
-function z_get_str(str: pchar; base: longint; var op: MPInteger): pchar;
+function z_get_str(str: PAnsiChar; base: longint; var op: MPInteger): PAnsiChar;
 { Return the value of op as an unsigned long }
 function z_get_ui(op: MPInteger): valuint;
 { Return limb number n from op }
@@ -1052,7 +1052,7 @@ procedure z_init_set_d(out rop: MPInteger; op: double);
 { Initialize rop with limb space and set the initial numeric value from op }
 procedure z_init_set_si(out rop: MPInteger; op: valsint);
 { Initialize rop and set its value like z_set_str. If the string is a correct base base number, the function returns true. }
-function z_init_set_str(out rop: MPInteger; str: string; base: longint): boolean;
+function z_init_set_str(out rop: MPInteger; str: ansistring; base: longint): boolean;
 { Initialize rop with limb space and set the initial numeric value from op }
 procedure z_init_set_ui(out rop: MPInteger; op: valuint);
 { Compute the inverse of op1 modulo op2 and put the result in rop }
@@ -1162,7 +1162,7 @@ procedure z_set_q(var rop: MPInteger; var op: MPRational);
 { Set the value of rop from op }
 procedure z_set_si(var rop: MPInteger; op: valsint);
 { Set the value of rop from str, a null-terminated C string in base base. If the string is a correct base base number, the function returns true. }
-function z_set_str(var rop: MPInteger; str: string; base: longint): boolean;
+function z_set_str(var rop: MPInteger; str: AnsiString; base: longint): boolean;
 { Set the value of rop from op }
 procedure z_set_ui(var rop: MPInteger; op: valuint);
 { Set bit bit_index in rop }
@@ -1281,9 +1281,9 @@ function q_get_den(var rational: MPRational): MPInteger;
 { Convert op to a double, truncating if necessary (ie. rounding towards zero) }
 function q_get_d(var op: MPRational): double;
 { Convert op to a string of digits in base base }
-function q_get_str(base: longint; var op: MPRational): string;
+function q_get_str(base: longint; var op: MPRational): ansistring;
 { Convert op to a string of digits in base base. If str is NULL, the result string is allocated using the current allocation function. }
-function q_get_str(str: pchar; base: longint; var op: MPRational): pchar;
+function q_get_str(str: PAnsiChar; base: longint; var op: MPRational): PAnsiChar;
 { Initialize dest rational and set it to 0/1 }
 procedure q_init(out dest_rational: MPRational);
 { Set inverted_number to 1/number }
@@ -1315,7 +1315,7 @@ procedure q_set_num(var rational: MPRational; var numerator: MPInteger);
 { Set the value of rop to op1/op2 }
 procedure q_set_si(var rop: MPRational; op1: valsint; op2: valuint);
 { Set rop from a null-terminated string str in the given base. The return value is true if the entire string is a valid number. }
-function q_set_str(var rop: MPRational; str: string; base: longint): boolean;
+function q_set_str(var rop: MPRational; str: AnsiString; base: longint): boolean;
 { Set the value of rop to op1/op2 }
 procedure q_set_ui(var rop: MPRational; op1, op2: valuint);
 { Assign rop from op }
@@ -1396,9 +1396,9 @@ function f_get_prec(var op: MPFloat): valuint;
 { Convert op to a long, truncating any fraction part }
 function f_get_si(var op: MPFloat): valsint;
 { Convert op to a string of digits in base base }
-function f_get_str(out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: MPFloat): string;
+function f_get_str(out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: MPFloat): ansistring;
 { Convert op to a string of digits in base base. If str is NULL, the result string is allocated using the current allocation function. }
-function f_get_str(str: pchar; out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: MPFloat): pchar;
+function f_get_str(str: PAnsiChar; out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: MPFloat): PAnsiChar;
 { Convert op to a unsigned long, truncating any fraction part }
 function f_get_ui(var op: MPFloat): valuint;
 { Initialize x to 0 }
@@ -1412,7 +1412,7 @@ procedure f_init_set_d(out rop: MPFloat; op: double);
 { Initialize rop and set its value from op }
 procedure f_init_set_si(out rop: MPFloat; op: valsint);
 { Initialize rop and set its value from the string in str. Returns true if the entire string is a valid number in base base. }
-function f_init_set_str(out rop: MPFloat; str: string; base: longint): boolean;
+function f_init_set_str(out rop: MPFloat; str: AnsiString; base: longint): boolean;
 { Initialize rop and set its value from op }
 procedure f_init_set_ui(out rop: MPFloat; op: valuint);
 { Return true if op is an integer }
@@ -1460,7 +1460,7 @@ procedure f_set_q(var rop: MPFloat; var op: MPRational);
 { Set the value of rop from op }
 procedure f_set_si(var rop: MPFloat; op: valsint);
 { Set the value of rop from the string in str. Returns true if the entire string is a valid number in base base. }
-function f_set_str(var rop: MPFloat; str: string; base: longint): boolean;
+function f_set_str(var rop: MPFloat; str: AnsiString; base: longint): boolean;
 { Set the value of rop from op }
 procedure f_set_ui(var rop: MPFloat; op: valuint);
 { Set the value of rop from op }
@@ -1528,7 +1528,7 @@ operator := (op: MPFloat): integer; inline;
 operator := (op: MPFloat): mpf_t; inline;
 operator := (op: MPFloat): MPInteger; inline;
 operator := (op: MPFloat): MPRational; inline;
-operator := (op: MPFloat): string; inline;
+operator := (op: MPFloat): AnsiString; inline;
 {$ifdef CPU64}
 operator := (op: MPFloat): valsint; inline;
 operator := (op: MPFloat): valuint; inline;
@@ -1540,7 +1540,7 @@ operator := (op: MPInteger): integer; inline;
 operator := (op: MPInteger): MPFloat; inline;
 operator := (op: MPInteger): MPRational; inline;
 operator := (op: MPInteger): mpz_t; inline;
-operator := (op: MPInteger): string; inline;
+operator := (op: MPInteger): AnsiString; inline;
 {$ifdef CPU64}
 operator := (op: MPInteger): valsint; inline;
 operator := (op: MPInteger): valuint; inline;
@@ -1551,12 +1551,12 @@ operator := (op: MPRational): double; inline;
 operator := (op: MPRational): MPFloat; inline;
 operator := (op: MPRational): MPInteger; inline;
 operator := (op: MPRational): mpq_t; inline;
-operator := (op: MPRational): string; inline;
+operator := (op: MPRational): AnsiString; inline;
 operator := (var op: mpz_t): MPInteger; inline;
 operator := (var op: randstate_t): MPRandState; inline;
-operator := (op: string): MPFloat; inline;
-operator := (op: string): MPInteger; inline;
-operator := (op: string): MPRational; inline;
+operator := (op: AnsiString): MPFloat; inline;
+operator := (op: AnsiString): MPInteger; inline;
+operator := (op: AnsiString): MPRational; inline;
 operator := (op: valsint): MPFloat; inline;
 operator := (op: valsint): MPInteger; inline;
 operator := (op: valsint): MPRational; inline;
@@ -1589,7 +1589,7 @@ uses
 var
   __gmp_bits_per_limb: longint; cvar; external;
   __gmp_errno: longint; cvar; external;
-  __gmp_version: pchar; cvar; external;
+  __gmp_version: PAnsiChar; cvar; external;
 
 function bits_per_limb: longint;
 begin
@@ -1601,7 +1601,7 @@ begin
   result := __gmp_errno;
 end;
 
-function version: string;
+function version: AnsiString;
 begin
   result := __gmp_version;
 end;
@@ -1618,7 +1618,7 @@ begin
   result := 0;
 end;
 
-function version: string;
+function version: AnsiString;
 const NO_VER = '0.0.0';
 begin
   result := NO_VER;
@@ -2226,15 +2226,15 @@ begin
   result := mpz_get_si(src(op)^);
 end;
 
-function z_get_str(base: longint; var op: MPInteger): string;
-var p: pchar;
+function z_get_str(base: longint; var op: MPInteger): AnsiString;
+var p: PAnsiChar;
 begin
   p := mpz_get_str(nil, base, src(op)^);
   result := p;
   freemem(p);
 end;
 
-function z_get_str(str: pchar; base: longint; var op: MPInteger): pchar;
+function z_get_str(str: PAnsiChar; base: longint; var op: MPInteger): PAnsiChar;
 begin
   result := mpz_get_str(str, base, src(op)^);
 end;
@@ -2289,10 +2289,10 @@ begin
   mpz_init_set_si(rop.ptr^, op);
 end;
 
-function z_init_set_str(out rop: MPInteger; str: string; base: longint): boolean;
+function z_init_set_str(out rop: MPInteger; str: AnsiString; base: longint): boolean;
 begin
   rop := TMPInteger.Create;
-  result := mpz_set_str(rop.ptr^, pchar(str), base) = 0;
+  result := mpz_set_str(rop.ptr^, PAnsiChar(str), base) = 0;
 end;
 
 procedure z_init_set_ui(out rop: MPInteger; op: valuint);
@@ -2566,9 +2566,9 @@ begin
   mpz_set_si(dest(rop)^, op);
 end;
 
-function z_set_str(var rop: MPInteger; str: string; base: longint): boolean;
+function z_set_str(var rop: MPInteger; str: AnsiString; base: longint): boolean;
 begin
-  result := mpz_set_str(dest(rop)^, pchar(str), base) = 0;
+  result := mpz_set_str(dest(rop)^, PAnsiChar(str), base) = 0;
 end;
 
 procedure z_set_ui(var rop: MPInteger; op: valuint);
@@ -2856,15 +2856,15 @@ begin
   result := mpq_get_d(src(op)^);
 end;
 
-function q_get_str(base: longint; var op: MPRational): string;
-var p: pchar;
+function q_get_str(base: longint; var op: MPRational): AnsiString;
+var p: PAnsiChar;
 begin
   p := mpq_get_str(nil, base, src(op)^);
   result := p;
   freemem(p);
 end;
 
-function q_get_str(str: pchar; base: longint; var op: MPRational): pchar;
+function q_get_str(str: PAnsiChar; base: longint; var op: MPRational): PAnsiChar;
 begin
   result := mpq_get_str(str, base, src(op)^);
 end;
@@ -2945,9 +2945,9 @@ begin
   mpq_set_si(dest(rop)^, op1, op2);
 end;
 
-function q_set_str(var rop: MPRational; str: string; base: longint): boolean;
+function q_set_str(var rop: MPRational; str: AnsiString; base: longint): boolean;
 begin
-  result := mpq_set_str(dest(rop)^, pchar(str), base) = 0;
+  result := mpq_set_str(dest(rop)^, PAnsiChar(str), base) = 0;
 end;
 
 procedure q_set_ui(var rop: MPRational; op1, op2: valuint);
@@ -3140,15 +3140,15 @@ begin
   result := mpf_get_si(src(op)^);
 end;
 
-function f_get_str(out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: MPFloat): string;
-var p: pchar;
+function f_get_str(out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: MPFloat): AnsiString;
+var p: PAnsiChar;
 begin
   p := mpf_get_str(nil, exp, base, ndigits, src(op)^);
   result := p;
   freemem(p);
 end;
 
-function f_get_str(str: pchar; out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: MPFloat): pchar;
+function f_get_str(str: PAnsiChar; out exp: mp_exp_t; base: longint; ndigits: sizeuint; var op: MPFloat): PAnsiChar;
 begin
   result := mpf_get_str(str, exp, base, ndigits, src(op)^);
 end;
@@ -3188,10 +3188,10 @@ begin
   mpf_init_set_si(rop.ptr^, op);
 end;
 
-function f_init_set_str(out rop: MPFloat; str: string; base: longint): boolean;
+function f_init_set_str(out rop: MPFloat; str: AnsiString; base: longint): boolean;
 begin
   rop := TMPFloat.Create;
-  result := mpf_init_set_str(rop.ptr^, pchar(str), base) = 0;
+  result := mpf_init_set_str(rop.ptr^, PAnsiChar(str), base) = 0;
 end;
 
 procedure f_init_set_ui(out rop: MPFloat; op: valuint);
@@ -3310,9 +3310,9 @@ begin
   mpf_set_si(dest(rop)^, op);
 end;
 
-function f_set_str(var rop: MPFloat; str: string; base: longint): boolean;
+function f_set_str(var rop: MPFloat; str: AnsiString; base: longint): boolean;
 begin
-  result := mpf_set_str(dest(rop)^, pchar(str), base) = 0;
+  result := mpf_set_str(dest(rop)^, PAnsiChar(str), base) = 0;
 end;
 
 procedure f_set_ui(var rop: MPFloat; op: valuint);
@@ -3548,9 +3548,9 @@ begin
   q_set_f(result, op);
 end;
 
-operator := (op: MPFloat): string;
+operator := (op: MPFloat): AnsiString;
 const FMT = '%.*Fg';
-var p: pchar;
+var p: PAnsiChar;
 begin
   mp_asprintf(p, FMT, floor(f_get_prec(op) * LOG_10_2), src(op));
   result := p;
@@ -3604,9 +3604,9 @@ begin
   mpz_init_set(result, src(op)^);
 end;
 
-operator := (op: MPInteger): string;
+operator := (op: MPInteger): AnsiString;
 const FMT = '%Zd';
-var p: pchar;
+var p: PAnsiChar;
 begin
   mp_asprintf(p, FMT, src(op));
   result := p;
@@ -3656,9 +3656,9 @@ begin
   mpq_set(result, src(op)^);
 end;
 
-operator := (op: MPRational): string;
+operator := (op: MPRational): AnsiString;
 const FMT = '%Qd';
-var p: pchar;
+var p: PAnsiChar;
 begin
   mp_asprintf(p, FMT, src(op));
   result := p;
@@ -3676,18 +3676,18 @@ begin
   mp_randinit_set(result.ptr^, op);
 end;
 
-operator := (op: string): MPFloat;
+operator := (op: AnsiString): MPFloat;
 begin
   f_set_prec(result, ceil(length(op) / LOG_10_2));
   f_set_str(result, op, BASE10);
 end;
 
-operator := (op: string): MPInteger;
+operator := (op: AnsiString): MPInteger;
 begin
   z_set_str(result, op, BASE10);
 end;
 
-operator := (op: string): MPRational;
+operator := (op: AnsiString): MPRational;
 begin
   q_set_str(result, op, BASE10);
 end;

+ 3 - 3
packages/gmp/src/libgmp.pp

@@ -70,7 +70,7 @@ Type
   tculong = culong;
   tclong = clong;
   Tcint = cint;
-  Ppcchar = ^pchar;
+  Ppcchar = ^PAnsiChar;
   Tcslong = cslong;
   Tcuint = cuint;
 
@@ -590,7 +590,7 @@ Const
     GMP_ERROR_SQRT_OF_NEGATIVE = 4;
     GMP_ERROR_INVALID_ARGUMENT = 8;
 
-procedure Loadlibgmp(const lib : string);
+procedure Loadlibgmp(const lib : AnsiString);
 procedure Loadlibgmp;
 procedure Freelibgmp;
 function libgmpLoaded: boolean;
@@ -983,7 +983,7 @@ begin
   LoadLibGMP(GMPlibraryFileName);
 end;
 
-procedure Loadlibgmp(const lib : string);
+procedure Loadlibgmp(const lib : AnsiString);
 
 begin
   if libgmpLoaded then