mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 15:39:24 +01:00 
			
		
		
		
	* pos(...,...) overloads with variants, see tb0520.pp for the reason
git-svn-id: trunk@5770 -
This commit is contained in:
		
							parent
							
								
									779b33148c
								
							
						
					
					
						commit
						28d59bbf6f
					
				
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							@ -6244,6 +6244,7 @@ tests/tbs/tb0516.pp svneol=native#text/plain
 | 
			
		||||
tests/tbs/tb0517.pp svneol=native#text/plain
 | 
			
		||||
tests/tbs/tb0518.pp svneol=native#text/plain
 | 
			
		||||
tests/tbs/tb0519.pp svneol=native#text/plain
 | 
			
		||||
tests/tbs/tb0520.pp svneol=native#text/plain
 | 
			
		||||
tests/tbs/ub0060.pp svneol=native#text/plain
 | 
			
		||||
tests/tbs/ub0069.pp svneol=native#text/plain
 | 
			
		||||
tests/tbs/ub0119.pp svneol=native#text/plain
 | 
			
		||||
 | 
			
		||||
@ -980,3 +980,58 @@ end;
 | 
			
		||||
procedure initvariantmanager;
 | 
			
		||||
  begin
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
Function Pos (c : Char; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(c,ShortString(v));
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Function Pos (s : ShortString; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(s,ShortString(v));
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Function Pos (a : AnsiString; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(a,AnsiString(v));
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Function Pos (w : WideString; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(w,WideString(v));
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Function Pos (v : Variant; Const c : Char) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(ShortString(v),c);
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Function Pos (v : Variant; Const s : ShortString) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(ShortString(v),s);
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Function Pos (v : Variant; Const a : AnsiString) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(AnsiString(v),a);
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Function Pos (v : Variant; Const w : WideString) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(WideString(v),w);
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Function Pos (v1 : Variant; Const v2 : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
  begin
 | 
			
		||||
    Result:=Pos(WideString(v1),WideString(v2));
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -442,6 +442,17 @@ operator :=(const source : currency) dest : olevariant;{$ifdef SYSTEMINLINE}inli
 | 
			
		||||
operator :=(const source : tdatetime) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
operator :=(const source : terror) dest : olevariant;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
 | 
			
		||||
{ silly, but how else should the compiler know what to do with pos(<string type>,<variant>)? (FK) }
 | 
			
		||||
Function Pos (c : Char; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
Function Pos (s : ShortString; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
Function Pos (a : AnsiString; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
Function Pos (w : WideString; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
Function Pos (v : Variant; Const c : Char) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
Function Pos (v : Variant; Const s : ShortString) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
Function Pos (v : Variant; Const a : AnsiString) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
Function Pos (v : Variant; Const w : WideString) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
Function Pos (v1 : Variant; Const v2 : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
 | 
			
		||||
 | 
			
		||||
{**********************************************************************
 | 
			
		||||
                             OLEVariant Operators
 | 
			
		||||
 **********************************************************************}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								tests/tbs/tb0520.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								tests/tbs/tb0520.pp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
uses
 | 
			
		||||
  variants;
 | 
			
		||||
var
 | 
			
		||||
  w : widestring;
 | 
			
		||||
  v : variant;
 | 
			
		||||
  a : ansistring;
 | 
			
		||||
begin
 | 
			
		||||
  a:='';
 | 
			
		||||
  w:='';
 | 
			
		||||
  v:='asdf';
 | 
			
		||||
  pos(a,v);
 | 
			
		||||
  pos(w,v);
 | 
			
		||||
  pos(v,v);
 | 
			
		||||
  pos(v,a);
 | 
			
		||||
  pos(v,w);
 | 
			
		||||
  pos(v,v);
 | 
			
		||||
end.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user