From: <de...@de...> - 2015-05-18 23:53:22
|
Author: PeterThoeny Date: 2015-05-18 23:37:58 +0000 (Mon, 18 May 2015) New Revision: 29223 Trac url: http://develop.twiki.org/trac/changeset/29223 Modified: twiki/branches/TWikiRelease06x00/SpreadSheetPlugin/data/TWiki/SpreadSheetPlugin.txt Log: Item7656: Add new COMMENT(), EQUAL() functions - updating docs Modified: twiki/branches/TWikiRelease06x00/SpreadSheetPlugin/data/TWiki/SpreadSheetPlugin.txt =================================================================== --- twiki/branches/TWikiRelease06x00/SpreadSheetPlugin/data/TWiki/SpreadSheetPlugin.txt 2015-05-18 23:37:48 UTC (rev 29222) +++ twiki/branches/TWikiRelease06x00/SpreadSheetPlugin/data/TWiki/SpreadSheetPlugin.txt 2015-05-18 23:37:58 UTC (rev 29223) @@ -1,4 +1,4 @@ -%META:TOPICINFO{author="TWikiContributor" date="1424845719" format="1.1" version="$Rev$"}% +%META:TOPICINFO{author="TWikiContributor" date="1431992693" format="1.1" version="$Rev$"}% <sticky><div style="float:right; background-color:#EBEEF0; margin:0 0 15px 15px; padding: 0 5px 0 0;"> %TOC{ title=" Page contents " depth="3" }% </div></sticky> @@ -184,6 +184,13 @@ * Example: ==%<nop>CALC{$COLUMN()}%== returns ==2== for the second column * Related: =[[#FuncROW][$ROW()]]=, =[[#FuncT][$T()]]= +#FuncCOMMENT +---+++ COMMENT( text ) -- comment, return empty string + * An empty string is returned - useful to comment formulas + * Syntax: ==$COMMENT( comment text )== + * Example: ==%<nop>CALCULATE{$COMMENT(abc)}%== returns an empty string + * Related: =[[#FuncNOP][$NOP()]]= + #FuncCOUNTITEMS ---+++ COUNTITEMS( list ) -- count individual items in a list * Syntax: ==$COUNTITEMS( list )== @@ -233,8 +240,15 @@ * Example: ==%<nop>CALCULATE{$EMPTY(foo)}%== returns ==0== * Example: ==%<nop>CALCULATE{$EMPTY()}%== returns ==1== * Example: ==%<nop>CALCULATE{$EMPTY($TRIM( ))}%== returns ==1== - * Related: =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncTRIM][$TRIM()]]=, =[[#FuncWHILE][$WHILE()]]= + * Related: =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncTRIM][$TRIM()]]=, =[[#FuncWHILE][$WHILE()]]= +#FuncEQUAL +---+++ EQUAL( text1, text2 ) -- compare two text strings, case-insensitive + * Compares two text strings and returns ==1== if they are the same ignoring the case, or ==0== if not; use =$EXACT()= for case-sensitive compare + * Syntax: ==$EQUAL( text1, _text2_ )== + * Example: ==%<nop>CALCULATE{$EQUAL(foo, Foo)}%== returns ==1== + * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncTRIM][$TRIM()]]= + #FuncEVAL ---+++ EVAL( formula ) -- evaluate a simple mathematical formula * Addition, substraction, multiplication, division and modulus of numbers are supported. Any nesting is permitted @@ -250,8 +264,8 @@ * Related: =[[#FuncABS][$ABS()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncMOD][$MOD()]]=, =[[#FuncODD][$ODD()]]=, =[[#FuncSIGN][$SIGN()]]= #FuncEXACT ----+++ EXACT( text1, text2 ) -- compare two text strings - * Compares two text strings and returns ==1== if they are exactly the same, or ==0== if not +---+++ EXACT( text1, text2 ) -- compare two text strings, case-sensitive + * Compares two text strings and returns ==1== if they are exactly the same, or ==0== if not; use =$EQUAL()= for case-insensitive compare * Syntax: ==$EXACT( text1, _text2_ )== * Example: ==%<nop>CALCULATE{$EXACT(foo, Foo)}%== returns ==0== * Example: ==%<nop>CALCULATE{$EXACT(foo, $LOWER(Foo))}%== returns ==1== @@ -272,7 +286,7 @@ * Syntax: ==$EXISTS( topic )== * Example: ==%<nop>CALCULATE{$EXISTS(<nop>%HOMETOPIC%)}%== returns ==1== * Example: ==%<nop>CALCULATE{$EXISTS(<nop>ThisDoesNotExist)}%== returns ==0== - * Related: =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncTRIM][$TRIM()]]= + * Related: =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncTRIM][$TRIM()]]= #FuncEXP ---+++ EXP( num ) -- exponent (e) raised to the power of a number @@ -476,7 +490,7 @@ * Example: ==%<nop>CALC{$IF($T(R1:C5) > 1000, Over Budget, OK)}%== returns ==Over Budget== if value in R1:C5 is over 1000, ==OK== if not * Example: ==%<nop>CALC{$IF($EXACT($T(R1:C2),), empty, $T(R1:C2))}%== returns the content of R1:C2 or ==empty== if empty * Example: ==%<nop>CALC{$SET(val, $IF($T(R1:C2) == 0, zero, $T(R1:C2)))}%== sets a variable conditionally - * Related: =[[#FuncAND][$AND()]]=, =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncLISTIF][$LISTIF()]]=, =[[#FuncNOT][$NOT()]]=, =[[#FuncOR][$OR()]]=, =[[#FuncWHILE][$WHILE()]]= + * Related: =[[#FuncAND][$AND()]]=, =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncLISTIF][$LISTIF()]]=, =[[#FuncNOT][$NOT()]]=, =[[#FuncOR][$OR()]]=, =[[#FuncWHILE][$WHILE()]]= #FuncINSERTSTRING ---+++ INSERTSTRING( text, start, new ) -- insert a string into a text string @@ -502,7 +516,7 @@ * Syntax: ==$ISDIGIT( text )== * Example: ==%<nop>CALCULATE{$ISDIGIT(123)}%== returns ==1== * Example: ==%<nop>CALCULATE{$ISDIGIT(-7)}%== returns ==0== - * Related: =[[#FuncABS][$ABS()]]=, =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEVEN][$EVEN()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncMOD][$MOD()]]=, =[[#FuncODD][$ODD()]]=, =[[#FuncSIGN][$SIGN()]]=, =[[#FuncVALUE][$VALUE()]]= + * Related: =[[#FuncABS][$ABS()]]=, =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEVEN][$EVEN()]]=, =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncMOD][$MOD()]]=, =[[#FuncODD][$ODD()]]=, =[[#FuncSIGN][$SIGN()]]=, =[[#FuncVALUE][$VALUE()]]= #FuncISLOWER ---+++ ISLOWER( text ) -- test for lower case text @@ -510,7 +524,7 @@ * Example: ==%<nop>CALCULATE{$ISLOWER(apple)}%== returns ==1== * Example: ==%<nop>CALCULATE{$ISLOWER(apple tree)}%== returns ==0== (text contains a space character) * Example: ==%<nop>CALCULATE{$ISLOWER(ORANGE)}%== returns ==0== - * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncLOWER][$LOWER()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncUPPER][$UPPER()]]= + * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncLOWER][$LOWER()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncUPPER][$UPPER()]]= #FuncISUPPER ---+++ ISUPPER( text ) -- test for upper case text @@ -519,7 +533,7 @@ * Example: ==%<nop>CALCULATE{$ISUPPER(apple)}%== returns ==0== * Example: ==%<nop>CALCULATE{$ISUPPER(ORANGE)}%== returns ==1== * Example: ==%<nop>CALCULATE{$ISUPPER(ORANGE GARDEN)}%== returns ==0== (text contains a space character) - * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncLOWER][$LOWER()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncUPPER][$UPPER()]]= + * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncLOWER][$LOWER()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncUPPER][$UPPER()]]= #FuncISWIKIWORD ---+++ ISWIKIWORD( text ) -- test for !WikiWord @@ -528,7 +542,7 @@ * Syntax: ==$ISWIKIWORD( text )== * Example: ==%<nop>CALCULATE{$ISWIKIWORD(<nop>GoldenGate)}%== returns ==1== * Example: ==%<nop>CALCULATE{$ISWIKIWORD(whiteRafting)}%== returns ==0== - * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEXISTS][$EXISTS()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncPROPER][$PROPER()]]=, =[[#FuncPROPERSPACE][$PROPERSPACE()]]= + * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXISTS][$EXISTS()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncISDIGIT][$ISDIGIT()]]=, =[[#FuncISLOWER][$ISLOWER()]]=, =[[#FuncISUPPER][$ISUPPER()]]=, =[[#FuncPROPER][$PROPER()]]=, =[[#FuncPROPERSPACE][$PROPERSPACE()]]= #FuncLEFT ---+++ LEFT( ) -- address range of cells to the left of the current cell @@ -579,7 +593,7 @@ * Example: ==%<nop>CALCULATE{$LISTIF($item > 12, 14, 7, 25)}%== returns ==14, 25== * Example: ==%<nop>CALCULATE{$LISTIF($NOT($EXACT($item,)), A, B, , E)}%== returns non-empty elements ==A, B, E== * Example: ==%<nop>CALCULATE{$LISTIF($index > 2, A, B, C, D)}%== returns ==C, D== - * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncLIST][$LIST()]]=, =[[#FuncLISTEACH][$LISTEACH()]]=, =[[#FuncLISTITEM][$LISTITEM()]]=, =[[#FuncLISTNONEMPTY][$LISTNONEMPTY()]]=, =[[#FuncLISTREVERSE][$LISTREVERSE()]]=, =[[#FuncLISTSIZE][$LISTSIZE()]]=, =[[#FuncLISTSORT][$LISTSORT()]]=, =[[#FuncLISTUNIQUE][$LISTUNIQUE()]]=, =[[#FuncSUM][$SUM()]]=, =[[#FuncWHILE][$WHILE()]]= + * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncLIST][$LIST()]]=, =[[#FuncLISTEACH][$LISTEACH()]]=, =[[#FuncLISTITEM][$LISTITEM()]]=, =[[#FuncLISTNONEMPTY][$LISTNONEMPTY()]]=, =[[#FuncLISTREVERSE][$LISTREVERSE()]]=, =[[#FuncLISTSIZE][$LISTSIZE()]]=, =[[#FuncLISTSORT][$LISTSORT()]]=, =[[#FuncLISTUNIQUE][$LISTUNIQUE()]]=, =[[#FuncSUM][$SUM()]]=, =[[#FuncWHILE][$WHILE()]]= #FuncLISTITEM ---+++ LISTITEM( index, list ) -- get one element of a list @@ -701,8 +715,14 @@ #FuncNOP ---+++ NOP( text ) -- no-operation - * Useful to change the order of plugin execution. For example, it allows preprocessing to be done before =%<nop>SEARCH{}%= is evaluated. The percent character '%' can be escaped with =$percnt=. The quote character '"' can be escaped with =$quot=. + * Text is returned verbatim, except for escape characters: + * =$percnt= - changed to percent character '%' + * =$quot= - changed to double quote character '"' + * Useful to delay / change the order of plugin execution. For example, it allows preprocessing to be done before =%<nop>SEARCH{...}%=. * Syntax: ==$NOP( text )== + * Example: ==%<nop>CALCULATE{$NOP(%)SEARCH{...}$NOP(%)}%== returns =%<nop>SEARCH{...}%= + * Example: ==%<nop>CALCULATE{$NOP($percntSEARCH{...}$percnt)}%== returns =%<nop>SEARCH{...}%= + * Related: =[[#FuncCOMMENT][$COMMENT()]]= #FuncNOT ---+++ NOT( num ) -- reverse logic of a number @@ -831,7 +851,7 @@ #FuncSET ---+++ SET( name, value ) -- set a variable for later use - * Specify the variable name (alphanumeric characters and underscores) and the value. The value may contain a formula; formulae are evaluated before the variable assignment; see =[[#FuncNOEXEC][$NOEXEC()]]= if you want to prevent that. This function returns no output. Use =$GET()= to retrieve variables. Unlike table ranges, variables live for the time of the page view and persist across tables, i.e. you can use it to summarize results across several tables and also across included topics. If the value is omitted, the named variable is deleted. + * Specify the variable name (alphanumeric characters and underscores) and the value. The value may contain a formula; formulas are evaluated before the variable assignment; see =[[#FuncNOEXEC][$NOEXEC()]]= if you want to prevent that. This function returns no output. Use =$GET()= to retrieve variables. Unlike table ranges, variables live for the time of the page view and persist across tables, i.e. you can use it to summarize results across several tables and also across included topics. If the value is omitted, the named variable is deleted. * Syntax: ==$SET( name, value )== * Example: ==%<nop>CALC{$SET(my_total, $SUM($ABOVE()))}%== sets the =my_total= variable to the sum of all table cells located above the current cell and returns an empty string * Related: =[[#FuncEXEC][$EXEC()]]=, =[[#FuncGET][$GET()]]=, =[[#FuncGETHASH][$GETHASH()]]=, =[[#FuncHASH2LIST][$HASH2LIST()]]=, =[[#FuncLIST2HASH][$LIST2HASH()]]=, =[[#FuncNOEXEC][$NOEXEC()]]=, =[[#FuncSETHASH][$SETHASH()]]=, =[[#FuncSETIFEMPTY][$SETIFEMPTY()]]=, =[[#FuncSETLIST][$SETLIST()]]=, =[[#FuncSETM][SETM()]]=, =[[#FuncSETMHASH][$SETMHASH()]]=, =[[#FuncWHILE][$WHILE()]]=, %SYSTEMWEB%.SetGetPlugin @@ -920,7 +940,7 @@ * Syntax: ==$SUBSTITUTE( text, old, _new_, _instance_, _option_ )== * Example: ==%<nop>CALCULATE{$SUBSTITUTE(Good morning, morning, day)}%== returns ==Good day== * Example: ==%<nop>CALCULATE{$SUBSTITUTE(Q2-2012, 2, 3)}%== returns ==Q3-3013== - * Example: ==%<nop>CALCULATE{$SUBSTITUTE(Q2-2012,2, 3, 3)}%== returns ==Q2-2013== + * Example: ==%<nop>CALCULATE{$SUBSTITUTE(Q2-2012, 2, 3, 3)}%== returns ==Q2-2013== * Example: ==%<nop>CALCULATE{$SUBSTITUTE(abc123def, [0-9], 9, , r)}%== returns ==abc999def== * Related: =[[#FuncBITXOR][$BITXOR()]]=, =[[#FuncFILTER][$FILTER()]]=, =[[#FuncHEXDECODE][$HEXDECODE()]]=, =[[#FuncHEXENCODE][$HEXENCODE()]]=, =[[#FuncINSERTSTRING][$INSERTSTRING()]]=, =[[#FuncLEFTSTRING][$LEFTSTRING()]]=, =[[#FuncRANDSTRING][$RANDSTRING()]]=, =[[#FuncREPLACE][$REPLACE()]]=, =[[#FuncRIGHTSTRING][$RIGHTSTRING()]]=, =[[#FuncSUBSTRING][$SUBSTRING()]]=, =[[#FuncTRANSLATE][$TRANSLATE()]]= @@ -999,7 +1019,7 @@ * Removes all spaces from text except for single spaces between words * Syntax: ==$TRIM( text )== * Example: ==%<nop>CALCULATE{$TRIM( eat spaces )}%== returns ==eat spaces== - * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncFILTER][$FILTER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncPROPER][$PROPER()]]=, =[[#FuncPROPERSPACE][$PROPERSPACE()]]= + * Related: =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncFILTER][$FILTER()]]=, =[[#FuncISWIKIWORD][$ISWIKIWORD()]]=, =[[#FuncPROPER][$PROPER()]]=, =[[#FuncPROPERSPACE][$PROPERSPACE()]]= #FuncUPPER ---+++ UPPER( text ) -- upper case string of a text @@ -1039,7 +1059,7 @@ * Syntax: ==$WHILE( condition, do something )== * Example: ==%<nop>CALCULATE{$WHILE($counter<=10, $counter )}%== returns ==1 2 3 4 5 6 7 8 9 10== * Example: ==%<nop>CALCULATE{$SET(i, 0) $WHILE($GET(i)<10, $SETM(i, +1) $EVAL($GET(i) * $GET(i)), )}%== returns ==1, 4, 9, 16, 25, 36, 49, 64, 81, 100,== - * Related: =[[#FuncAND][$AND()]]=, =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncGET][$GET()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncLISTIF][$LISTIF()]]=, =[[#FuncNOT][$NOT()]]=, =[[#FuncOR][$OR()]]=, =[[#FuncSET][$SET()]]=, =[[#FuncSETHASH][$SETHASH()]]=, =[[#FuncSETM][$SETM()]]=, =[[#FuncSETMHASH][$SETMHASH()]]=, =[[#FuncREPEAT][$REPEAT()]]= + * Related: =[[#FuncAND][$AND()]]=, =[[#FuncEMPTY][$EMPTY()]]=, =[[#FuncEQUAL][$EQUAL()]]=, =[[#FuncEXACT][$EXACT()]]=, =[[#FuncGET][$GET()]]=, =[[#FuncIF][$IF()]]=, =[[#FuncLISTIF][$LISTIF()]]=, =[[#FuncNOT][$NOT()]]=, =[[#FuncOR][$OR()]]=, =[[#FuncSET][$SET()]]=, =[[#FuncSETHASH][$SETHASH()]]=, =[[#FuncSETM][$SETM()]]=, =[[#FuncSETMHASH][$SETMHASH()]]=, =[[#FuncREPEAT][$REPEAT()]]= #FuncWORKINGDAYS ---+++ WORKINGDAYS( serial_1, serial_2 ) -- working days!! between two serialized dates @@ -1240,13 +1260,14 @@ | Copyright: | © 2001-2015 Peter Thoeny, [[http://twiki.org/][TWiki.org]]<br /> © 2008-2015 TWiki:TWiki.TWikiContributor <br /> © 2015 Wave Systems Corp. | | Sponsor: | [[http://www.wave.com/][Wave Systems Corp.]] for hash functions | | License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) | -| Plugin Version: | 2015-02-24 | +| Plugin Version: | 2015-05-18 | %TWISTY{ mode="div" showlink="Show Change History %ICONURL{toggleopen}%" hidelink="Hide Change History %ICONURL{toggleclose}% " }% %TABLE{ tablewidth="100%" columnwidths="170," }% +| 2015-05-18: | TWikibug:Item7656: Add COMMENT(), EQUAL() | | 2015-02-24: | TWikibug:Item7617: Add range check in SUBSTRING() | | 2015-01-14: | TWikibug:Item7607: PROPERSPACE() to space also uppercase to number transition | | 2015-01-09: | TWikibug:Item7604: Switch to GPL v3 | |