Browse Source

Improved strings interface

git-svn-id: https://svn-dept.inf.ethz.ch/svn/lecturers/a2/trunk@8747 8c9fc860-2736-0410-a75d-ab315db34111
negelef 6 years ago
parent
commit
ed12d972a7

+ 1 - 1
source/FileHandlers.Mod

@@ -5,7 +5,7 @@ IMPORT
 
 (** Opens the file path; corresponding file handlers are specified in Configuration.XML *)
 PROCEDURE OpenFile* (CONST path : ARRAY OF CHAR; err: Streams.Writer; caller: OBJECT);
-VAR config,filehandler: ARRAY 128 OF CHAR; name,filename, ext : Files.FileName; index: LONGINT; res : WORD;
+VAR config,filehandler: ARRAY 128 OF CHAR; name,filename, ext : Files.FileName; index: SIZE; res : WORD;
 	context: Commands.Context; arg: Streams.StringReader; in: Streams.Reader; out: Streams.Writer;
 BEGIN
 	Files.SplitExtension(path, name, ext);

+ 1 - 1
source/FoxParser.Mod

@@ -218,7 +218,7 @@ TYPE
 
 		(** constructor, init parser with scanner providing input and with diagnostics for error output *)
 		PROCEDURE & Init*( scanner: Scanner.Scanner; diagnostics: Diagnostics.Diagnostics; CONST definitions: ARRAY OF CHAR );
-		VAR begin, end: LONGINT (* SIZE! *); definition: ARRAY 32 OF CHAR;
+		VAR begin, end: SIZE; definition: ARRAY 32 OF CHAR;
 		BEGIN
 			conditional := Processing;
 			conditionalCount := 0;

+ 6 - 5
source/HTMLTransformer.Mod

@@ -234,6 +234,7 @@ TYPE
 			enum: XMLObjects.Enumerator;
 			p : ANY;
 			i, j, res : LONGINT;
+			pos: SIZE;
 			exitLoop : BOOLEAN;
 			aoc : ARRAY 16 OF CHAR;
 			olulStackItem : OLULStackItem;
@@ -876,11 +877,11 @@ TYPE
 				ELSIF name^="META" THEN
 					s := GetElemAttributeValue(elem, "content", TRUE);
 					IF s#NIL THEN
-						i := Strings.Pos("charset", s^);
+						pos := Strings.Pos("charset", s^);
 						IF i # -1 THEN
-							i := Strings.IndexOfByte('=', i+7, s^) + 1;
-							IF i < Strings.Length(s^) THEN
-								s := Strings.Substring2(i, s^);
+							pos := Strings.IndexOfByte('=', pos+7, s^) + 1;
+							IF pos < Strings.Length(s^) THEN
+								s := Strings.Substring2(pos, s^);
 								charsetConv := GetCharsetConverter(s^);
 								charset := s;
 							END;
@@ -2828,7 +2829,7 @@ END TrimLineBreak;
 
 PROCEDURE ResolveAddress*(baseAddress : String; url : String) : String;
 VAR
-	slashPos, colonPos, upCnt : LONGINT;
+	slashPos, colonPos, upCnt : SIZE;
 BEGIN
 
 	(* if url is absolute address, return it *)

+ 3 - 2
source/OdSvn.Mod

@@ -193,7 +193,8 @@ TYPE
 
 		wrk*, ver*, errorMsg, repositoryURL* : ARRAY 256 OF CHAR; (* wrk URL of PROPFIND/PATCH *)
 		pfStatus* : LONGINT;
-		countChanges*, repositoryPathLength* : LONGINT;
+		countChanges* : LONGINT;
+		repositoryPathLength* : SIZE;
 		removeDir*, svnUpdated* : BOOLEAN;
 		resultDoc* : XML.Document;
 		nextVersion* : ARRAY 10 OF CHAR;
@@ -591,7 +592,7 @@ TYPE
 	VAR
 		pathName, path, collUrl, name, workName, workUrl, vcc, ver, err: ARRAY 256 OF CHAR;
 		resHeader: WebHTTP.ResponseHeader;
-		version,headVersion, pos: LONGINT; res: WORD;
+		version,headVersion: LONGINT; pos: SIZE; res: WORD;
 		props: WebHTTP.AdditionalField;
 		act: Activity;
 	BEGIN

+ 1 - 1
source/Options.Mod

@@ -686,7 +686,7 @@ TYPE
 		END Show;
 
 		PROCEDURE Find*(CONST option, value: ARRAY OF CHAR; VAR name: ARRAY OF CHAR);
-		VAR default: Default; pattern: Name; pos, i: LONGINT;
+		VAR default: Default; pattern: Name; pos, i: SIZE;
 		BEGIN
 			default := head; pattern := "--";
 			Strings.Concat(pattern, option, pattern);

+ 2 - 2
source/PCTest.Mod

@@ -82,7 +82,7 @@ PROCEDURE ParseTests(
 	diagnostics: Diagnostics.Diagnostics): BOOLEAN;
 VAR
 	buffer : POINTER TO ARRAY OF CHAR;
-	length, pos1, pos2: LONGINT;
+	length, pos1, pos2: SIZE;
 	regrbuf: ARRAY Files.PrefixLength+Files.NameLength+20 OF CHAR;
 	reader: Streams.StringReader;
 BEGIN
@@ -108,7 +108,7 @@ BEGIN
 	END;
 	NEW(reader, LEN(regrbuf));
 	WHILE (pos2 # -1) & (regrfile = "") DO
-		reader.SetRaw(buffer^, pos1, pos2-pos1);
+		reader.SetRaw(buffer^, LONGINT(pos1), LONGINT(pos2-pos1)); (* TODO *)
 		reader.SkipWhitespace; reader.String(regrbuf);
 		Strings.LowerCase(regrbuf);
 		IF Strings.StartsWith2("regression", regrbuf) THEN

+ 1 - 1
source/PET.Mod

@@ -2680,7 +2680,7 @@ VAR
 (** Open document *)
 PROCEDURE Open*(context : Commands.Context); (** [Options] {filename['@'position]} ~ *)
 VAR
-	window : Window; count, index, temp, position : LONGINT;
+	window : Window; count, index, temp : SIZE; position : LONGINT;
 	filename : Filename; format : ARRAY 32 OF CHAR;
 	options: Options.Options;
 BEGIN

+ 1 - 1
source/Repositories.Mod

@@ -1379,7 +1379,7 @@ BEGIN (* must hold archive lock!! *)
 END GetWriter;
 
 PROCEDURE SplitName*(CONST name : ARRAY OF CHAR; VAR repositoryName, componentName : ARRAY OF CHAR; VAR id : LONGINT) : BOOLEAN;
-VAR count, pos, next : LONGINT; succeeded : BOOLEAN;
+VAR count, pos, next : SIZE; succeeded : BOOLEAN;
 BEGIN
 	succeeded := TRUE;
 	count := Strings.Count (name, Delimiter);

+ 12 - 12
source/SVG.Mod

@@ -84,7 +84,7 @@ BEGIN
 END InitDefaultStyle;
 
 (* Parse a number at the specified position in the string *)
-PROCEDURE ParseNumber2(value: String; VAR number: Number; percentageAllowed: BOOLEAN; percent100: Length; VAR i: LONGINT; VAR unitStr: String);
+PROCEDURE ParseNumber2(value: String; VAR number: Number; percentageAllowed: BOOLEAN; percent100: Length; VAR i: SIZE; VAR unitStr: String);
 BEGIN
 	SVGUtilities.StrToFloatPos(value^, number, i);
 	unitStr := Strings.Substring2(i, value^);
@@ -100,7 +100,7 @@ END ParseNumber2;
 
 (* Parse a number *)
 PROCEDURE ParseNumber*(value: String; VAR number: Number; percentageAllowed: BOOLEAN; percent100: Length);
-VAR i: LONGINT;
+VAR i: SIZE;
 	unitStr: String;
 BEGIN
 	i := 0;
@@ -108,7 +108,7 @@ BEGIN
 END ParseNumber;
 
 (* Parse an attribute of type length at the specified position in the string *)
-PROCEDURE ParseLength2(value:String; ppi: LONGREAL;  percent100: Length; VAR length: Length; VAR i: LONGINT);
+PROCEDURE ParseLength2(value:String; ppi: LONGREAL;  percent100: Length; VAR length: Length; VAR i: SIZE);
 VAR
 	term: CSS2.Term;
 	unit: SHORTINT;
@@ -128,7 +128,7 @@ END ParseLength2;
 (* Parse an attribute of type length *)
 PROCEDURE ParseLength*(value:String; ppi: LONGREAL;  percent100: Length; VAR length: Length);
 VAR
-	i: LONGINT;
+	i: SIZE;
 BEGIN
 	i := 0;
 	ParseLength2(value,ppi,percent100,length,i)
@@ -137,7 +137,7 @@ END ParseLength;
 (* Parse one or optionally two attributes of type length *)
 PROCEDURE ParseLengthOptional2*(value:String; ppi: LONGREAL;  percent100: Length; VAR length, length2: Length);
 VAR
-	i: LONGINT;
+	i: SIZE;
 BEGIN
 	i := 0;
 	ParseLength2(value,ppi,percent100,length,i);
@@ -150,7 +150,7 @@ BEGIN
 END ParseLengthOptional2;
 
 (* Parse a coordinate pair *)
-PROCEDURE ParseCoordinate*(value: String; VAR i: LONGINT;  VAR current: Coordinate; relative: BOOLEAN);
+PROCEDURE ParseCoordinate*(value: String; VAR i: SIZE;  VAR current: Coordinate; relative: BOOLEAN);
 VAR x, y: Length;
 BEGIN
 	SVGUtilities.SkipCommaWhiteSpace(i, value);
@@ -167,7 +167,7 @@ BEGIN
 END ParseCoordinate;
 
 (* Parse a single coordinate value *)
-PROCEDURE ParseCoordinate1*(value: String; VAR i: LONGINT;  VAR current: Length; relative: BOOLEAN);
+PROCEDURE ParseCoordinate1*(value: String; VAR i: SIZE;  VAR current: Length; relative: BOOLEAN);
 VAR l: Length;
 BEGIN
 	SVGUtilities.SkipCommaWhiteSpace(i, value);
@@ -219,7 +219,7 @@ END ParseUnits;
 
 (* Parse the contents of the fill or stroke attributes *)
 PROCEDURE ParseStyle*(style: String; CONST name: ARRAY OF CHAR): String;
-VAR i, end: LONGINT;
+VAR i, end: SIZE;
 	id: String;
 BEGIN
 	i := 0;
@@ -250,7 +250,7 @@ END ParseStyle;
 (* Parse the contents of the transform and gradientTransform attributes *)
 PROCEDURE ParseTransformList*(value: String; VAR transform: Transform);
 VAR
-	i, len: LONGINT;
+	i, len: SIZE;
 	a, b, c, d, e, f: Length;
 BEGIN
 	i := 0;
@@ -317,7 +317,7 @@ END ParseTransformList;
 
 (* Parse the contents of the viewBoxattribute *)
 PROCEDURE ParseViewBox*(value: String; VAR minx, miny, width, height: Length);
-VAR i: LONGINT;
+VAR i: SIZE;
 BEGIN
 	i := 0;
 	SVGUtilities.SkipWhiteSpace(i, value);
@@ -332,7 +332,7 @@ END ParseViewBox;
 
 (* Parse the contents of the preserveAspectRatio attribute *)
 PROCEDURE ParsePreserveAspect*(value: String; VAR xAlign, yAlign: LONGINT; VAR meet: BOOLEAN);
-VAR i: LONGINT;
+VAR i: SIZE;
 BEGIN
 	i := 0;
 
@@ -446,4 +446,4 @@ BEGIN
 	END
 END GetTermUnit;
 
-END SVG.
+END SVG.

+ 1 - 1
source/SVGColors.Mod

@@ -158,7 +158,7 @@ TYPE
 
 (* Parse a color specified by name or value *)
 PROCEDURE Parse*(value: Strings.String; VAR color: Color):BOOLEAN;
-VAR res: WORD; i, r, g, b: LONGINT;
+VAR res: WORD; i: SIZE; r, g, b: LONGINT;
 	f: LONGREAL;
 BEGIN
 	IF value[0]='#' THEN

+ 1 - 1
source/SVGFilters.Mod

@@ -514,7 +514,7 @@ END ParseColorMatrixType;
 
 (* Parse some values attribute of some feColorMatrix element *)
 PROCEDURE ParseColorMatrixValues*(values: XML.String; type: SHORTINT; VAR matrix: ColorMatrix):BOOLEAN;
-VAR pos,i,j: LONGINT;
+VAR pos: SIZE; i,j: LONGINT;
 	angle, s,c: LONGREAL;
 BEGIN
 	(* Init to the zero matrix *)

+ 2 - 2
source/SVGRenderer.Mod

@@ -360,7 +360,7 @@ TYPE
 
 		(* Render an open polyline or a closed polygon *)
 		PROCEDURE RenderPoly*(points: SVG.String; closed: BOOLEAN; state: SVG.State);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 			current: SVG.Coordinate;
 		BEGIN
 			RenderBegin(state, TRUE);
@@ -387,7 +387,7 @@ TYPE
 
 		(* Render a general path element *)
 		PROCEDURE RenderPath*(d: SVG.String; state: SVG.State);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 			subPathStart, current, last: SVG.Coordinate;
 			relative: BOOLEAN;
 			command, prevCommand: CHAR;

+ 6 - 6
source/SVGUtilities.Mod

@@ -39,7 +39,7 @@ BEGIN
 END IsAlpha;
 
 (* Skip any whitespace characters *)
-PROCEDURE SkipWhiteSpace*(VAR i: LONGINT; s: Strings.String);
+PROCEDURE SkipWhiteSpace*(VAR i: SIZE; s: Strings.String);
 BEGIN
 	WHILE (s[i] = 20X) OR
 		(s[i] = 09X) OR
@@ -48,7 +48,7 @@ BEGIN
 END SkipWhiteSpace;
 
 (* Skip a specified character *)
-PROCEDURE SkipChar*(VAR i: LONGINT; s: Strings.String; c: CHAR);
+PROCEDURE SkipChar*(VAR i: SIZE; s: Strings.String; c: CHAR);
 BEGIN
 	IF s[i] # c THEN
 		Error("Expected a different character");
@@ -58,13 +58,13 @@ BEGIN
 END SkipChar;
 
 (* Optionally skip a specified character *)
-PROCEDURE SkipCharOptional*(VAR i: LONGINT; s: Strings.String; c: CHAR);
+PROCEDURE SkipCharOptional*(VAR i: SIZE; s: Strings.String; c: CHAR);
 BEGIN
 	IF s[i] = c THEN INC(i) END
 END SkipCharOptional;
 
 (* Skip a comma and/or any whitespace characters *)
-PROCEDURE SkipCommaWhiteSpace*(VAR i: LONGINT; s: Strings.String);
+PROCEDURE SkipCommaWhiteSpace*(VAR i: SIZE; s: Strings.String);
 BEGIN
 	SkipWhiteSpace(i, s);
 	SkipCharOptional(i, s, ',');
@@ -73,9 +73,9 @@ END SkipCommaWhiteSpace;
 
 (* Convert the substring beginning at position i in str into a real value. Leading whitespace is ignored.
 	After the conversion i points to the first character after the real value. *)
-PROCEDURE StrToFloatPos*(VAR str: ARRAY OF CHAR; VAR val: LONGREAL; VAR i: LONGINT);
+PROCEDURE StrToFloatPos*(VAR str: ARRAY OF CHAR; VAR val: LONGREAL; VAR i: SIZE);
 VAR noStr: ARRAY 16 OF CHAR;
-	count: LONGINT;
+	count: SIZE;
 BEGIN
 	WHILE (str[i] # 0X) & (str[i] <= " ") DO INC(i) END;
 

+ 3 - 3
source/SVNWebDAV.Mod

@@ -11,7 +11,7 @@ IMPORT
 	VAR
 		name, err, vcc, repoUUID, bln, bc, version, workUrl : ARRAY 256 OF CHAR;
 		props: WebHTTP.AdditionalField;
-		ver, pos : LONGINT;
+		ver : LONGINT; pos : SIZE;
 	BEGIN
 		svn.checkout := TRUE;
 		res := SVNOutput.ResOK;
@@ -63,7 +63,7 @@ IMPORT
 	VAR
 		name, err, vcc, repoUUID, bln, bc, version, workUrl : ARRAY 256 OF CHAR;
 		props: WebHTTP.AdditionalField;
-		ver, pos : LONGINT;
+		ver : LONGINT; pos : SIZE;
 	BEGIN
 		res := SVNOutput.ResOK;
 		Files.SplitPath ( pathName, workUrl, name );
@@ -502,4 +502,4 @@ IMPORT
 		END;
 	END PrintError;
 
-END SVNWebDAV.
+END SVNWebDAV.

+ 2 - 1
source/SambaServer.Mod

@@ -838,7 +838,8 @@ END HandleSessionSetup;
 
 PROCEDURE HandleTreeConnect(c: Connection);
 VAR
-	i,offset: LONGINT;
+	i: LONGINT;
+	offset: SIZE;
 	pwLen: INTEGER;
 	byteCount: INTEGER;
 	password: ARRAY 256 OF CHAR;

+ 16 - 16
source/Strings.Mod

@@ -143,7 +143,7 @@ BEGIN
 END Length;
 
 (** Find position of character, returns -1 if not found*)
-PROCEDURE Find* (CONST string: ARRAY OF CHAR; pos: LONGINT; ch: CHAR): LONGINT;
+PROCEDURE Find* (CONST string: ARRAY OF CHAR; pos: SIZE; ch: CHAR): SIZE;
 BEGIN
 	WHILE (string[pos] # 0X ) & (string[pos] # ch) DO INC(pos) END;
 	IF string[pos] = 0X THEN pos := -1 END;
@@ -151,8 +151,8 @@ BEGIN
 END Find;
 
 (** returns the number of occurences of ch within string *)
-PROCEDURE Count* (CONST string: ARRAY OF CHAR; ch: CHAR): LONGINT;
-VAR count, pos: LONGINT;
+PROCEDURE Count* (CONST string: ARRAY OF CHAR; ch: CHAR): SIZE;
+VAR count, pos: SIZE;
 BEGIN
 	count := 0; pos := Find (string, 0, ch);
 	WHILE pos # -1 DO INC (count); pos := Find (string, pos + 1, ch) END;
@@ -473,7 +473,7 @@ END Trim;
  *	StringArray[i] # NIL (0 <= i <= LEN(StringArray)-1)
  *)
 PROCEDURE Split*(CONST string : ARRAY OF CHAR; separator : CHAR) : StringArray;
-VAR count, index, pos, next: LONGINT; result : StringArray;
+VAR count, index, pos, next: SIZE; result : StringArray;
 BEGIN
 	count := Count (string, separator);
 	NEW (result, count + 1); pos := 0;
@@ -626,7 +626,7 @@ END StrToInt;
 (** Convert the substring beginning at position i in str into an integer. Leading whitespace is ignored.
 	After the conversion i points to the first character after the integer. *)
 (* adopted from Strings.Mod *)
-PROCEDURE StrToIntPos*(CONST str: ARRAY OF CHAR; VAR val, i: LONGINT);
+PROCEDURE StrToIntPos*(CONST str: ARRAY OF CHAR; VAR val: LONGINT; VAR i: SIZE);
 VAR noStr: ARRAY 16 OF CHAR;
 BEGIN
 	WHILE (str[i] # 0X) & (str[i] <= " ") DO INC(i) END;
@@ -758,7 +758,7 @@ END TimeToStr;
 (** converts a string to a time *)
 (* adopted from Strings.Mod *)
 PROCEDURE StrToTime*(CONST str: ARRAY OF CHAR; VAR dt: Dates.DateTime);
-VAR i: LONGINT;
+VAR i: SIZE;
 BEGIN
 	i := 0;
 	WHILE (str[i] # 0X) & ((str[i] < "0") OR (str[i] > "9")) DO INC(i) END;
@@ -777,7 +777,7 @@ END DateToStr;
 
 (** Convert a string of the form 'day month year' into an date value. Leading whitespace is ignored. *)
 PROCEDURE StrToDate*(CONST str: ARRAY OF CHAR; VAR dt: Dates.DateTime);
-VAR i: LONGINT;
+VAR i: SIZE;
 BEGIN
 	i := 0;
 	WHILE (str[i] # 0X) & ((str[i] < "0") OR (str[i] > "9")) DO INC(i) END;
@@ -943,15 +943,15 @@ BEGIN
 END ContainsChar;
 
 (* Returns the index within string s of the first occurrence of the specified character *)
-PROCEDURE IndexOfByte2*(ch : CHAR; CONST s : ARRAY OF CHAR) : LONGINT;
+PROCEDURE IndexOfByte2*(ch : CHAR; CONST s : ARRAY OF CHAR) : SIZE;
 BEGIN
 	RETURN IndexOfByte(ch, 0, s);
 END IndexOfByte2;
 
 (* Returns the index within string s of the first occurrence of the specified character, starting the search at the specified index *)
-PROCEDURE IndexOfByte*(ch : CHAR; fromIndex : LONGINT; CONST s : ARRAY OF CHAR) : LONGINT;
+PROCEDURE IndexOfByte*(ch : CHAR; fromIndex : SIZE; CONST s : ARRAY OF CHAR) : SIZE;
 VAR
-	lenString, i : LONGINT;
+	lenString, i : SIZE;
 BEGIN
 	lenString := Length(s);
 	IF fromIndex < 0 THEN
@@ -1003,9 +1003,9 @@ BEGIN
 END StartsWith2;
 
 (* Tests if string s starts with the specified prefix beginning a specified index *)
-PROCEDURE StartsWith*(CONST prefix : ARRAY OF CHAR; toffset : LONGINT; CONST s : ARRAY OF CHAR) : BOOLEAN;
+PROCEDURE StartsWith*(CONST prefix : ARRAY OF CHAR; toffset : SIZE; CONST s : ARRAY OF CHAR) : BOOLEAN;
 VAR
-	lenString, lenPrefix, i : LONGINT;
+	lenString, lenPrefix, i : SIZE;
 BEGIN
 	lenString := Length(s);
 	lenPrefix := Length(prefix);
@@ -1019,16 +1019,16 @@ BEGIN
 END StartsWith;
 
 (* Returns a new string that is a substring of string s *)
-PROCEDURE Substring2*(beginIndex : LONGINT; CONST s : ARRAY OF CHAR) : String;
+PROCEDURE Substring2*(beginIndex : SIZE; CONST s : ARRAY OF CHAR) : String;
 BEGIN
 	RETURN Substring(beginIndex, Length(s), s);
 END Substring2;
 
 (* Returns a new string that is a substring of string s *)
 (* s[endIndex-1] is the last character of the new string *)
-PROCEDURE Substring*(beginIndex : LONGINT; endIndex : LONGINT; CONST s : ARRAY OF CHAR) : String;
+PROCEDURE Substring*(beginIndex : SIZE; endIndex : SIZE; CONST s : ARRAY OF CHAR) : String;
 VAR
-	lenString, lenNewString : LONGINT;
+	lenString, lenNewString : SIZE;
 	st : String;
 BEGIN
 	ASSERT(beginIndex >= 0);
@@ -1044,7 +1044,7 @@ END Substring;
 (* Omitts leading and trailing whitespace of string s *)
 PROCEDURE TrimWS*(VAR s : ARRAY OF CHAR);
 VAR
-	len, start, i : LONGINT;
+	len, start, i : SIZE;
 BEGIN
 	len := Length(s);
 	start := 0;

+ 1 - 1
source/TFPET.Mod

@@ -2636,7 +2636,7 @@ VAR
 (** Open document *)
 PROCEDURE Open*(context : Commands.Context); (** [Options] {filename['@'position]} ~ *)
 VAR
-	window : Window; count, index, temp, position : LONGINT;
+	window : Window; count, index, temp : SIZE; position : LONGINT;
 	filename : Filename; format : ARRAY 32 OF CHAR;
 	options: Options.Options;
 BEGIN

+ 1 - 2
source/TFWebForum.Mod

@@ -263,7 +263,7 @@ TYPE
 		END AddEntryToParent;
 
 		PROCEDURE FindElement*(CONST path : ARRAY OF CHAR) : XML.Element;
-		VAR i, j, l : LONGINT;
+		VAR i, j, l : SIZE;
 			id : ARRAY 32 OF CHAR;
 			s : String;
 			e, next : XML.Element;
@@ -1236,4 +1236,3 @@ WebCGI.Install ~
 WebCGI.RegisterCGI Forum TFWebForum.Access~
 WebCGI.ListCGI ~
 
-

+ 1 - 1
source/WebBrowserComponents.Mod

@@ -430,7 +430,7 @@ log : Streams.Writer;*)
 
 		PROCEDURE GetServer(VAR url : ARRAY OF CHAR) : String;
 		VAR
-			end : LONGINT;
+			end : SIZE;
 		BEGIN
 			end := Strings.IndexOfByte('/', Strings.Pos("://", url) + 3, url);
 			IF end = -1 THEN end := Strings.Length(url) END;

+ 3 - 3
source/WebBrowserPanel.Mod

@@ -692,7 +692,7 @@ VAR
 	textPanel : WebBrowserComponents.TextPanel;
 	s : String;
 	charset : String;
-	charsetPos : LONGINT;
+	charsetPos : SIZE;
 BEGIN
 
 	rc := WebBrowserComponents.GetResourceConnection(url);
@@ -827,8 +827,8 @@ END ParseFramesetAttr;
 
 PROCEDURE ParseFramesetRowsOrCols(attrValue : String; VAR firstSlot : FrameslotNode; VAR nodeCount : LONGINT; VAR fixSizes : LONGINT);
 VAR
-	start : LONGINT;
-	comma : LONGINT;
+	start : SIZE;
+	comma : SIZE;
 	s : String;
 	sizeStr : String;
 	size : LONGINT;

+ 2 - 2
source/WebStd.Mod

@@ -2149,7 +2149,7 @@ TYPE
 
 	(** format 'day month year hour minute second" no check for validity *)
 	PROCEDURE StrToDateTime*(str: ARRAY OF CHAR; VAR dt: Dates.DateTime);
-	VAR i: LONGINT;
+	VAR i: SIZE;
 		PROCEDURE GoToNextBlock;
 		BEGIN
 			WHILE (str[i] # 0X) & ((str[i] < "0") OR (str[i] > "9")) DO INC(i) END
@@ -2613,4 +2613,4 @@ BEGIN
 	oidCounter := 0;
 	NEW(persistentDataContainerDesc, "WebStd", "PersistentDataContainer", GetNewPersistentDataContainer);
 	NEW(persistentCounterDesc, "WebStd", "PersistentCounter", GetNewPersistentCounter);
-END WebStd.
+END WebStd.