[Overview][Constants][Types][Procedures and functions][Index] Reference for unit 'amigados' (#aros)


Create a tokenized string for MatchPattern()


Source position: amigados.pas line 2386

function ParsePattern(

  const Source: STRPTR;

  Dest: STRPTR;

  DestLength: LongInt





Pattern describing the kind of strings that match.



Buffer for the destination.



Size of the buffer.

Function result

There are wildcards in the pattern (it might match more than one string).
No wildcards in it, all went fine.
An error happened. IoErr() gives additional information in that case.


Tokenizes a pattern, for use by MatchPattern(). Also indicates if there are any wildcards in the pattern (i.e. whether it might match more than one item). Note that Dest must be at least 2 times as large as Source plus bytes to be (almost) 100% certain of no buffer overflow. This is because each input character can currently expand to 2 tokens (with one exception that can expand to 3, but only once per string). Note: this implementation may change in the future, so you should handle error returns in all cases, but the size above should still be a reasonable upper bound for a buffer allocation.

The patterns are fairly extensive, and approximate some of the ability of Unix/grep "regular expression" patterns. Here are the available tokens:

Matches a single character.
Matches the following expression 0 or more times.
Matches any one of the items seperated by '|'.
Negates the following expression. It matches all strings that do not match the expression (aka ~(foo) matches all strings that are not exactly 'foo').
Character class: matches any of the characters in the class.
Character class: matches any of the characters not in the class.
Character range (only within character classes).
Matches 0 characters always (useful in '(foo|bar|%)').
Synonym for "#?", not available by default in 2.0. Available as an option that can be turned on.

'Expression' in the above table means either a single character (ex: "#?"), or an alternation (ex: "#(ab|cd|ef)"), or a character class (ex: "#[a-zA-Z]").

See also



Create a tokenized string for MatchPatternNoCase()



Checks for a pattern match with a string



Finds file that matches pattern



Finds the next file or directory that matches pattern

Documentation generated on: 2017-01-10