Text-constants are text-expressions:
[text] -> [tex]
There is the empty-list-constant:
'NIL' -> [list]
Depending on the context, variables have type [tex] or type [list]:
[variable] -> [tex] -- returns the text-value of a text-variable
[variable] -> [lex] -- returns the list-value of a list-variable
Expressions [tex] resp. [lex] can be build according the signature of the following functions:
To build conditional expressions we provide some predicates:
equal(t1, t2) : [tex] x [tex] -> [bex]
empty(l) : [lex] -> [bex]return "true" if t1 = t2 else "false"
isList(t1) : [tex] -> [bex]return "true" if l is NIL-list else "false"
isText(t1) : [tex] -> [bex]<=> variable named t1 is of type list
isNat(t1) : [tex] -> [bex]<=> variable named t1 is of type text
isMember(l1, t1) : [lex] -> [bex]<=> variable named t1 is of type nat
<=> text t1 is member of the list l1
To manipulate text-values, we provide:
cat(t1, .. , tN) : [tex] x .. x [tex] -> [tex]
pathnameJoin(d, f) : [tex] x [tex] -> [tex]concate t1 and .. and tN, with N > 0
write(t) : [tex] -> [tex]return a pathname formed by prepending f to base d
text(l) : [lex] -> [tex]returns t with side-effect: output of t via Msg.V
subst(t1, t2, t3, c1) : [tex] x [tex] x [tex] x [card] -> [tex]returns quoted text-representation of list l
pos(t1, t2) : [tex] x [tex] -> [card]substitute first c1/all orccurences of t2 by t3 in text t1
contains(t1, t2) : [tex] x [tex] -> [bex]position of a subtext in a text
sub(t1, c1, c2) : [tex] x [card] x [card] -> [tex]<=> text contains a subtext
pathnameAbsolute(pn) : [tex] -> [bex]extract a subtext starting at c1 of length c2
<=> pn is an absolute pathname
list-values can be build by the following functions:
list(t1, .. , tN) : [tex] x ... x [tex] -> [lex]
constructs a list of text-values t1, ... , tN, with N > 0
list-values can be manipulated by the following functions:
listSize(l1) : [lex] -> [card]
tail(l1) : [lex] -> [lex]length of a list
cons(t1, l1) : [tex] x [lex] -> [lex]tail of a list, i.e. the list without the first element
get(l1, c1) : [lex] x [card] -> [tex]prepend element t1 to the head of the list l1
head(l1) : [lex] -> [tex]get the c1-th element of list l1
sort(l) : [lex] -> [lex]get the first element of list l1
sortfn(l) : [lex] -> [lex]lex-sort on the list
sorttag(l) : [lex] -> [lex]lex-sort on the list respecting possible filename-extensions
stableBranchTagFilter(l) : [lex] -> [lex]sort on the list respecting the tag-semantic
reverse(l) : [lex] -> [lex]returns a list of all the elements of source l, that represent release tags
append(l1, l2) : [lex] x [lex] -> [lex]reverse the list
matchFilter(l, regex) : [lex] x [tex] -> [lex]append l2 to l1
negMatchFilter(l, regex) : [lex] x [tex] -> [lex]returns a list like l, where all elements matching regex are deleted
listFilter(l, f) : [lex] x [lex] -> [lex]returns a list like l, where all elements match regex
negListFilter(l, f) : [lex] x [lex] -> [lex]returns a list like l, where all elements are also in f
addPrefix(l1, t1) : [lex] [tex] -> [lex]returns a list like l, where no element is also in f
addSuffix(l1, t1) : [lex] x [tex] -> [lex]add prefix t1 to every element of l1
add suffix t1 to every element of l1
timeFmtShort(t1) : [tex] -> [tex]
timeFmtLong(t1) : [tex] -> [tex]short time format of real repr.
cardToText(c1) : [card] -> [tex]long time format of real repr.
textToCard(t1) : [tex] -> [card]convert cardinal c1 to a text
htmlTextFromISO(t) : [tex] -> [tex]convert a text to a cardinal
htmlTextToISO(t) : [tex] -> [tex]returns a text with HTML special characters escaped
escapeURLEntry(t) : [tex] -> [tex]returns a text with HTML special characters converted to ISO characters
unescapeURLEntry(t) : [tex] -> [tex]returns a text with URL-special characters escaped
split(t1, t2) : [tex] x [tex] -> [lex]returns a text with escaped URL-special characters converted to ISO
join(l1, t1) : [lex] x [tex] -> [tex]split text t1 into elements at every occurence of t2
makeTag(t1, t2, t3, t4, t5) : [tex] x [tex] x [tex] x [tex] x [tex] -> [tex]create a new text such that each element of l1 is separated from the next by t1
makeStableTag(t1, t2, t3, t4) : [tex] x [tex] x [tex] x [tex] -> [tex]build a tag from kind, package name, major, minor, and patchlevel numbers
tagKind(t1) : [tex] -> [tex]build a stable branch tag from kind, package name, major, and minor numbers
tagPkgName(t1) : [tex] -> [tex]return the kind component of tag t1
tagMajor(t1) : [tex] -> [tex]return the package name component of tag t1
tagMinor(t1) : [tex] -> [tex]return the major version number of tag t1
tagPL(t1) : [tex] -> [tex]return the minor version number of tag t1
tagVersion(t1) : [tex] -> [tex]return the patch level number of tag t1
return the version number component of tag t1
eq(c1, c2) : [card] x [card] -> [bex]
lt(c1, c2) : [card] x [card] -> [bex]c1 = c2
le(c1, c2) : [card] x [card] -> [bex]c1 < c2
gt(c1, c2) : [card] x [card] -> [bex]c1 <= c2
ge(c1, c2) : [card] x [card] -> [bex]c1 > c2
c1 >= c2
computeColPartion(l, n) : [lex] x [cex] -> [cex]
substInListNth(l, t, n) : [lex] x [tex] x [cex] -> [lex]returns the number of columns to represent l as a table with maxLineLen
substInListMatch(l, t, regex) : [lex] x [tex] x [tex] -> [lex]substitutes all entries of l that have an index i = x*n by a text which is like t, where all occurences of $$$ are substituted by the corresponding entry t' of l and all occurences of ### are substituted by the modified corresponding entry escapeURLEntry(t') of l
optionsList(l, p) : [lex] x [tex] -> [lex]substitutes all entries of l that match regex by a text which is like t, where all occurences of $$$ are substituted by the corresponding entry t' of l and all occurences of ### are substituted by the modified corresponding entry escapeURLEntry(t') of l
doColPartion(l, n) : [lex] x [cex] -> [lex]returns a list like l, where every entry is preceded by the OPTION-Tag except the entry p which is tagged as the preselected OPTION.
returns a list like l, which is partionated in n columns where each first entry of a line is prefixed by "<TR>\n"; empty entries in the last column are represented by the value "".
dirContextDefined(pn) : [tex] -> [bex]
directories(pn) : [tex] -> [lex]<=> a valid directory context exists for directory pn
files(pn) : [tex] -> [lex]returns all dir-entries in dir pn except "CVS"
directoriesFP(pn) : [tex] -> [lex]returns all file-entries in dir pn
filesFP(pn) : [tex] -> [lex]full pathname directory list, i.e. all directories of directory pn with absolute pathnames
exists(pn) : [tex] -> [bex]full pathname files list, i.e. all files of directory pn with absolute pathnames
isDir(pn) : [tex] -> [bex]<=> given file pn exists
isFile(pn) : [tex] -> [bex]<=> pn is a directory
dcFileExists(pn) : [tex] -> [bex]<=> pn is an ordinary file
dcIsDir(pn) : [tex] -> [bex]<=> file pn exists according to the cache
dcIsFile(pn) : [tex] -> [bex]<=> pn is a directory according to the cache
readable(pn) : [tex] -> [bex]<=> pn is an ordinary file according to the cache
writeable(pn) : [tex] -> [bex]file pn is readable (currently broken)
fileModTime(pn) : [tex] -> [tex]file pn is writeable (currently broken)
fileContents(pn) : [tex] -> [tex]modification time of file pn as real repr.
fileSize(pn) : [tex] -> [card]contents of file pn or error text
fileIgnorePattern(pn) : [tex] -> [tex]size of file pn
dirIgnorePattern(pn) : [tex] -> [tex]file ignore patterns of given context
setIgnorePatterns(t1, t2) : [tex] x [tex] -> [bex]directory ignore patterns of given context
change the directory and file ignore patterns of the current context (bool)
To access version-control-info the following functions are defined:
pkgContextDefined(pn) : [tex] -> [bex]
pkgmAdminFiles() : -> [lex]<=> a valid package context exists for directory pn
pkgKinds() : -> [lex]returns the list of ComPact-files for adminstration
predTag(l, t) : [lex] x [tex] -> [tex]returns the list of possible package kinds
pkgvmAllVCTags() : -> [lex]returns the element from list l, that is the highest tag which is less than tag t. returns "" if such an element does not exist.
pkgvmCurDevelTag() : -> [tex]returns the list of all tags relative to 'package'
pkgvmLatestReleaseTag() : -> [tex]returns the current development tag relative to 'package'
pkgvmCheckedOutInfo() : -> [tex]returns the latest release tag relative to 'package' resp. the text 'no release up to now', if no release of 'package' exists
pkgvmLocallyModified() : -> [bex]returns info about the checked out status of relative to 'package'
pkgvmUpToDate() : -> [bex]<=> 'package' is locally modyfied
pkgvmConflicts() : -> [bex]<=> 'package' is up-to-date
pkgCurDevelTag(pn) : [tex] -> [tex]<=> 'package' has pkgvmConflicts
pkgLatestReleaseTag(pn) : [tex] -> [tex]current development tag of package at directory pn
pkgCheckedOutInfo(pn) : [tex] -> [tex]latest release tag of package at directory pn
pkgLocallyModified(pn) : [tex] -> [bex]descriptive text of package state
pkgConflicts(pn) : [tex] -> [bex]<=> package at directory pn is locally modified
pkgUpToDate(pn) : [tex] -> [bex]<=> package at directory pn conflicts with the repository
pkgAllVCTags(pn) : [tex] -> [lex]<=> package at directory pn is up-to-date
pkgFiles(pn, t1) : [tex] x [tex] -> [lex]list of all valid tags for package at directory pn
get files from package context pn with special status t1 ("added", "removed", "modified", "conflicting", "outofdate", "unknown', "known")
To access project-manager-info the following functions are defined:
prjContextDefined(pn) : [tex] -> [bex]
prjCollections() : -> [lex]<=> a valid project context exists for directory pn
prjCollectionLocation(c) : [tex] -> [tex]returns the list of all project-collections relative to 'project'
prjPackages() : -> [lex]mapping from collection c to its pathname
prjPackageCollection(p) : [tex] -> [tex]returns the list of all project-packages relative to 'project'
prjModifiedPackages() : -> [lex]mapping from packagename p to its collection
prjModifiedAndDependingPackages() : -> [lex]returns the list of all modified project-packages relative to 'project'
prjOutOfDatePackages() : -> [lex]returns the list of all modified and depending project-packages relative to 'project'
prjOutOfDateAndDependingPackages() : -> [lex]returns the list of all out-of-date project-packages relative to 'project'
prjUpToDatePackages() : -> [lex]returns the list of all out-of-date and depending project-packages relative to 'project'
prjPackagesWithConflicts() : -> [lex]returns the list of all up-to-date project-packages relative to 'project'
updateProjectCache() : -> [tex]returns the list of all project-packages relative to 'project' that are conflicting with the repository
prjLocallyModified(pn) : [tex] -> [bex]update the internal project state cache of the HTTP server and returns a string containing the update time
prjConflicts(pn) : [tex] -> [bex]<=> project in directory pn contains one or more modified packages
prjUpToDate(pn) : [tex] -> [bex]<=> project in directory pn contains one or more packages with conflicts
<=> project in directory pn contains only up-to-date packages (which may be locally modified)
poolContextDefined(pn) : [tex] -> [bex]
poolTPC(pn) : [tex] -> [tex]<=> a valid pool context exists for directory pn
poolPkgVersions(pn) : [tex] -> [lex]the current TPC of pool located at directory pn
poolMatchingPkgs(pn, t1) : [tex] x [tex] -> [lex]all package version pairs in pool located at directory pn
all package versions pairs of pool located at directory pn matching expression t1
qenv(t1) : [tex] -> [tex]lookup a value named t1 in the current ExHTML environment
delGlobalVal(t1) : [tex] -> [tex]lookup a value named t1 in the query environment
delSessionVal(t1) : [tex] -> [tex]delete value named t1 from the global environment
delContextVal(t1) : [tex] -> [tex]delete value named t1 from the session environment
defGlobal(t1, t2) : [tex] x [tex] -> [tex]delete value named t1 from the context environment
defSession(t1, t2) : [tex] x [tex] -> [tex]define a global text variable named t1 with value t2 and return the old value or nil
defContext(t1, t2) : [tex] x [tex] -> [tex]define a session text variable named t1 with value t2 and return the old value or nil
defGlobalList(t1, l1) : [tex] x [lex] -> [lex]define a context text variable named t1 with value t2 and return the old value or nil
defSessionList(t1, l1) : [tex] x [lex] -> [lex]define a global list variable named t1 with value l1 and return the old value or nil
defContextList(t1, l1) : [tex] x [lex] -> [lex]define a session list variable named t1 with value l1 and return the old value or nil
define a context list variable named t1 with value l1 and return the old value or nil
historyPop(t1) : [tex] -> [tex]history of edit|exec|load
historyPush(t1, t2) : [tex] x [tex] -> [lex]pop last entry from history
envFileName() : -> [tex]add to history of edit|exec|load
quote(t1) : [tex] -> [tex]the most probable location of the environment file compact-env-rc
resource(pn) : [tex] -> [tex]do not interpret ExHTML construct t1, rather use its syntax directly
return the named resource pn either from the internal bundle or the contents of a file found on the resource path