|
Hi!
I'm a visual guy with bad eyes Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and broken memory. sometimes it really helps me Flow control: if … thenif i follow Flow control: if … then Flow control: try … thenthe following design guides, Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and therefore i ask you that you Flow control: try … thentry to follow Flow control: if … then Flow control: try … thenthem too to exactly that extent which Flow control: do … loopdoes Operators: Bitwise Not "~" Operators: Boolean Negation "!"not disturb you ;-)
- In case you use non-7-bit-ascii characters: please use - Flow control: if … thenif possible - utf-8 encoding.
In case you don't use a utf-8 compliant Data Types: Text Glossary: text, text_valtext editor: please don't "correct" Flow control: if … then Flow control: try … thenthe funny characters...
- All sources are formatted with 4 characters per Constants: tabtab.
- Please indent Flow control: do … looploops, Vipsi command syntax: Procedures
Data Types: Procedures Glossary: Procedureprocedure bodies et.al. matching Separators: Round brackets "( … )" Separators: Square brackets "[ … ]" Separators: Curly brackets "{ … }"brackets should be either in Flow control: if … then Flow control: try … thenthe same row Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or column. i know that some people like it "more compact".
- Use, as appropriate, Flow control: if … then
Flow control: try … thenthe Developer Documentation: Predefined Data Typespredefined data types.
- Vipsi command syntax: Functions
Functions Glossary: FunctionFunction Vipsi command syntax: Identifiers (names) Data Types: Identifiers, names Operators: Make Identifier "@" Text functions: name Glossary: Name, Identifiernames should start with an Text functions: upperstruppercase letter, except Flow control: if … thenif they are very low-level Vipsi command syntax: Procedures Data Types: Procedures Glossary: Procedureprocedures which are only used locally.
- Glossary: Variable, var_refVariable Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Constants Glossary: Constantconstant Vipsi command syntax: Identifiers (names) Data Types: Identifiers, names Operators: Make Identifier "@" Text functions: name Glossary: Name, Identifiernames should start with a Text functions: lowerstrlowercase letter.
- Macros should be all Text functions: upperstruppercase.
- start each Vipsi command syntax: Functions
Functions Glossary: Functionfunction definition with a Vipsi command syntax: Commentscomment which tells, what List functions: thisthis Vipsi command syntax: Functions Functions Glossary: Functionfunction Flow control: do … loopdoes, what it expects as input, what it supplies as output, which side effects it may imply, what it Flow control: do … loopdoes when an error happens. ok, i'm sometimes pretty lazy here too, especially when i'm working on it Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or modifying it. Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and afterwards i'm too tired...
- keep it easy. don't be kewl. you'll regret it in a year Operators: Boolean Or with Variable "||="
Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or two.
Flow control: if … then Flow control: try … thenThe Developer Documentation: Class Varclass Var is part of Flow control: if … then Flow control: try … thenthe project lib-kio!
List functions: thisthis class implements all Flow control: if … then Flow control: try … thenthe Glossary: Variable, var_refvariables used in vipsi Example Scripts: CGI Scripts Example Scripts: Scriptsscripts.
Currently it supports Data Types: Numbersnumbers (double float), Data Types: Text Glossary: text, text_valtext (Developer Documentation: Class Stringclass String), Instructions: procproc (Vipsi command syntax: Procedures Data Types: Procedures Glossary: Procedureprocedure bodies: Developer Documentation: Class Stringclass String) Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Data Types: Lists and arrays Glossary: list, list_vallists. it has a full set of Vipsi command syntax: Operators Operators Glossary: Operatoroperators which work on nearly all Data Types Invariants: Data typesdata types. most notably they also work on Data Types: Lists and arrays Glossary: list, list_vallists; e.g. you can Operators: Multiply to Variable "*=" Operators: Multiply "*"multiply all Data Types: Lists and arrays Glossary: list, list_vallist items by a Glossary: number, num_valnumber Glossary: Valuevalue Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or a matching second Data Types: Lists and arrays Glossary: list, list_vallist to Flow control: do … loopdo vector operations.
Flow control: if … then Flow control: try … thenThe Developer Documentation: Class Varclass Var is part of Flow control: if … then Flow control: try … thenthe project lib-kio!
List functions: thisThis class is used by Developer Documentation: Class Varclass Var for all Data Types: Text Glossary: text, text_valtext Glossary: Variable, var_refvariables, Instructions: procproc Glossary: Variable, var_refvariables (Vipsi command syntax: Procedures Data Types: Procedures Glossary: Procedureprocedure bodies) Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Glossary: Variable, var_refvariable Vipsi command syntax: Identifiers (names) Data Types: Identifiers, names Operators: Make Identifier "@" Text functions: name Glossary: Name, Identifiernames. it is also used in various Example Scripts: Librarieslibraries for passing Data Types: Text Glossary: text, text_valtext, since List functions: thisthis is Flow control: if … then Flow control: try … thenthe natural format for Data Types: Text Glossary: text, text_valtext representation in vipsi, because Data Types: Text Glossary: text, text_valtext Instructions: readread from Glossary: Variable, var_refvariables has List functions: thisthis format Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Instructions: requirerequires to have List functions: thisthis format whenever stored back in Glossary: Variable, var_refvariables.
Text functions: file Instructions: fileFile kio/standard_types.h defines a lot of basic Data Types Invariants: Data typesdata types to shorten Flow control: if … then Flow control: try … thenthe source. there is no real need to use Flow control: if … then Flow control: try … thenthem, but it would be nice. List functions: thisthis is Operators: Bitwise Not "~" Operators: Boolean Negation "!"not a complete Data Types: Lists and arrays Glossary: list, list_vallist, just Flow control: if … then Flow control: try … thenthe most commonly used:
uchar unsigned char unsigned character
ushort unsigned short unsigned short integer
ulong unsigned long unsigned long integer
uint unsigned Numeric functions: intint unsigned integer
str char * indicates a 0-terminated c-string
cstr char const * 0-terminated c-string Constants Glossary: Constantconstant
ptr char * pointer to just a char
cptr char const * pointer to a Constants Glossary: Constantconstant char
uptr uchar * pointer to just an unsigned char Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or
length-prefixed pascal-style Data Types: Text Text functions: stringstring
cuptr uchar const * pointer to unsigned Constants Glossary: Constantconstant characters
OSErr short Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or Numeric functions: intint (operating system) error code
You probably recognize how a prefixed u stands for unsigned Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and c stands for Constants Glossary: Constantconstant.
Project specific Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and project-independent general-use classes are as follows:
Data Types: Text Text functions: stringString Developer Documentation: Class Stringclass String Data Types: Text Glossary: text, text_valtext Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or Integer numbers: Binary Floating point: Binary Text functions: binstrbinary data
cString const Developer Documentation: Class Stringclass String Constants Glossary: Constantconstant Data Types: Text Glossary: text, text_valtext Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or Integer numbers: Binary Floating point: Binary Text functions: binstrbinary data
Instructions: var How does VScript::Value() work?: Var*&Var Developer Documentation: Class Stringclass String Data Types: Text Glossary: text, text_valtext Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or Integer numbers: Binary Floating point: Binary Text functions: binstrbinary data
cVar const Developer Documentation: Class Stringclass String Constants Glossary: Constantconstant Data Types: Text Glossary: text, text_valtext Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or Integer numbers: Binary Floating point: Binary Text functions: binstrbinary data
Flow control: if … then Flow control: try … thenThe utf-8 character set handling module utf-8.h defines a lot of own Data Types Invariants: Data typesdata types:
UCS4Char unsigned long single character, UCS-4 encoded
UCS2Char unsigned short single character, UCS-2 encoded
UCS1Char unsigned char single character, UCS-1 (ISO Latin-1) encoded
UTF8Char char const * single character, UTF-8 encoded
UTF8CharPtr char * pointer to UTF-8 character
UTF8Str char * c-string, UTF-8 encoded
cUTF8CharPtr char const * pointer to UTF-8 character in const Data Types: Text Text functions: stringstring
List functions: thisthis is Operators: Bitwise Not "~" Operators: Boolean Negation "!"not same as const UTF8CharPtr!
Any class Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or Data Types Invariants: Data typesdata type missing? send mail Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and i'll Operators: Add to Variable "+=" Operators: Add "+"add it.
Like all Flow control: if … then Flow control: try … thenthe associated Vipsi command syntax: Functions Functions Glossary: Functionfunctions it takes Flow control: if … then Flow control: try … thenthe current How does VScript::Value() work?: Instruction pointerinstruction pointer as it's first Vipsi command syntax: Arguments Glossary: Argumentsargument Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Flow control: returnreturns Flow control: if … then Flow control: try … thenthe updated pointer. Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and second: like all Flow control: if … then Flow control: try … thenthe associated Vipsi command syntax: Functions Functions Glossary: Functionfunctions it refuses work Flow control: if … then Flow control: if … thenif the List functions: globals Shell Immediate Commands: globalsglobal errno is set. List functions: thisthis allows you frequently to delay error testing, because you can combine a whole bunch of Functions with varying return types: call Instructions: callcalls before you really must test Flow control: if … thenif something went wrong.
Flow control: if … then Flow control: try … thenThe result of Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Expressions Glossary: Expressionexpression which is currently executed is returned in a supplied Glossary: Variable, var_refvariable. first you must allocate a Glossary: Variable, var_refvariable as temporary data cell where Flow control: if … then Flow control: try … thenthe result can be stored in, Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Flow control: if … then Flow control: try … thenthen you must pass a pointer to List functions: thisthis temp cell by reference.
Why so complicated? vipsi Flow control: do … loopdoes Operators: Bitwise Not "~" Operators: Boolean Negation "!"not know about reference Glossary: Variable, var_refvariables. but frequently you need a reference to a Glossary: Variable, var_refvariable Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or it saves you a lot of time Checkout source:: If you don't have a developer login at sourceforgeif you don't have to copy Flow control: if … then Flow control: try … thenthe result into Flow control: if … then Flow control: try … thenthe supplied temp cell. on Flow control: if … then Flow control: try … thenthe other hand, frequently you can't Flow control: returnreturn a reference to a result but you can only Flow control: returnreturn it by Glossary: Valuevalue. have a look Operators: Make Identifier "@"at Flow control: if … then Flow control: try … thenthe following example:
fooVar = 45;
On Flow control: if … then Flow control: try … thenthe left side of Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Operators Operators Glossary: Operatoroperator = stands a Glossary: Variable, var_refvariable. when Glossary: ValueValue() is called to parse Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Expressions Glossary: Expressionexpression it is required that it Flow control: returnreturns a reference to that Glossary: Variable, var_refvariable. Flow control: if … then Flow control: try … thenthe current contents of fooVar is of no interest.
On Flow control: if … then Flow control: try … thenthe right side of Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Operators Operators Glossary: Operatoroperator = stands a Literals: Number literals Numbers: Number literalsnumber literal (Constants Glossary: Constantconstant). when Glossary: ValueValue() is called to parse Flow control: if … then Flow control: try … thenthe right side of Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Expressions Glossary: Expressionexpression it cannot Flow control: returnreturn a reference to a Glossary: Variable, var_refvariable with List functions: thisthis Glossary: Valuevalue because there is simply no such Glossary: Variable, var_refvariable. you could circumvent List functions: thisthis in a lots of other ways, but i've done it List functions: thisthis way:
Flow control: if … then Flow control: if … thenIf the result cannot be returnd by reference, Flow control: if … then Flow control: try … thenthe Glossary: Valuevalue is stored in Flow control: if … then Flow control: try … thenthe supplied temp cell (as accessible by Flow control: if … then Flow control: try … thenthe passed pointer) Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Flow control: if … then Flow control: try … thenthe pointer is left to point to List functions: thisthis temp cell.
Flow control: if … then Flow control: if … thenIf the result can be returned by reference, Flow control: if … then Flow control: try … thenthe supplied temp cell is ignored Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Flow control: if … then Flow control: try … thenthe passed-by-reference pointer is set to point to Flow control: if … then Flow control: try … thenthe result.
Whether Flow control: if … then Flow control: try … thenthe returned result is a Glossary: Valuevalue Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or a reference can be tested by Flow control: if … then Flow control: try … thenthe Functions with varying return types: call Instructions: callcaller, Flow control: if … thenif he Operators: Comparisons > < >= <= != ==compares Flow control: if … then Flow control: try … thenthe Glossary: Variable, var_refvariable pointer with it's initial Glossary: Valuevalue, Flow control: if … then Flow control: try … thenthe address of Flow control: if … then Flow control: try … thenthe temp cell. so he can see whether he got a reference when he needed one Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or Operators: Bitwise Not "~" Operators: Boolean Negation "!"not Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and he can see, whether he must duplicate Flow control: if … then Flow control: try … thenthe passed result from Flow control: if … then Flow control: try … thenthe referenced Glossary: Variable, var_refvariable Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or can move Flow control: if … then Flow control: try … thenthe data from Flow control: if … then Flow control: try … thenthe temp cell to Flow control: if … then Flow control: try … thenthe target. Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or he can already supply Flow control: if … then Flow control: try … thenthe target as temp cell. sorry, he can't. List functions: thisthis will lead to some dangerous conflicts.
Glossary: ValueValue() Functions with varying return types: call Instructions: callcalls itself recursively.
An Vipsi command syntax: Expressions Glossary: Expressionexpression is made out of multiple subexpressions connected by Vipsi command syntax: Operators Operators Glossary: Operatoroperators:
<term> = <term> <op> <term>
where you recursively can Text functions: replace Instructions: replacereplace a term again by <term> <op> <term>.
when you evaluate an Vipsi command syntax: Expressions Glossary: Expressionexpression with multiple Vipsi command syntax: Operators Operators Glossary: Operatoroperators, you have to obey Operators: Operator precedenceoperator precedence. Flow control: if … then Flow control: try … thenthe precedence of Flow control: if … then Flow control: try … thenthe currently pending Vipsi command syntax: Operators Operators Glossary: Operatoroperator is passed in How does VScript::Value() work?: prioprio. imagine Flow control: if … then Flow control: try … thenthe following Vipsi command syntax: Expressions Glossary: Expressionexpression:
55 + 66 * 77;
- Glossary: ValueValue() is called with an How does VScript::Value() work?: Instruction pointerinstruction pointer pointing to Flow control: if … then
Flow control: try … thenthe Glossary: number, num_valnumber 55.
- Glossary: ValueValue() Instructions: readreads Flow control: if … then
Flow control: try … thenthe Literals: Number literals Numbers: Number literalsnumber literal 55 which is Flow control: if … then Flow control: try … thenthe simplest form of a term. Numeric functions: nownow it expects an Vipsi command syntax: Operators Operators Glossary: Operatoroperator.
- Glossary: ValueValue() Instructions: readreads Flow control: if … then
Flow control: try … thenthe token for + which it recognizes as an Vipsi command syntax: Operators Operators Glossary: Operatoroperator. Numeric functions: nownow it has to decide whether Flow control: if … then Flow control: try … thenthe 'pending' Vipsi command syntax: Operators Operators Glossary: Operatoroperator is of higher Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or same priority. Flow control: if … thenif it is, Glossary: ValueValue() must Instructions: putput pack Flow control: if … then Flow control: try … thenthe Operators and Functions with Side Effects: operator ++ and --operator and Flow control: returnreturn. but you have probably called Glossary: ValueValue() with a How does VScript::Value() work?: prioprio low enough: pAny Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Glossary: ValueValue() will resume, making Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Operators Operators Glossary: Operatoroperator + it's currently pending Vipsi command syntax: Operators Operators Glossary: Operatoroperator. Flow control: if … then Flow control: try … thenthe enumeration of Vipsi command syntax: Operators Operators Glossary: Operatoroperator priorities is in Flow control: if … then Flow control: try … thenthe Text functions: file Instructions: filefile vscript.cp.
- Glossary: ValueValue() Numeric functions: nownow needs to evaluate Flow control: if … then
Flow control: try … thenthe right side of Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Operators Operators Glossary: Operatoroperator. for List functions: thisthis purpose it Functions with varying return types: call Instructions: callcalls itself recursively with Flow control: if … then Flow control: try … thenthe precedence of Flow control: if … then Flow control: try … thenthe current Vipsi command syntax: Operators Operators Glossary: Operatoroperator +.
- Glossary: ValueValue() is called with an How does VScript::Value() work?: Instruction pointerinstruction pointer pointing to Flow control: if … then
Flow control: try … thenthe Glossary: number, num_valnumber 66 Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and a How does VScript::Value() work?: prioprio corresponding to Vipsi command syntax: Operators Operators Glossary: Operatoroperator +.
- Glossary: ValueValue() Instructions: readreads Flow control: if … then
Flow control: try … thenthe Literals: Number literals Numbers: Number literalsnumber literal 66 which is Flow control: if … then Flow control: try … thenthe simplest form of a term. Numeric functions: nownow it expects an Vipsi command syntax: Operators Operators Glossary: Operatoroperator.
- Glossary: ValueValue() Instructions: readreads Flow control: if … then
Flow control: try … thenthe token for * which it recognizes as an Vipsi command syntax: Operators Operators Glossary: Operatoroperator. Numeric functions: nownow it has to decide whether Flow control: if … then Flow control: try … thenthe 'pending' Vipsi command syntax: Operators Operators Glossary: Operatoroperator is of higher Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or same priority. Flow control: if … thenif it is, Glossary: ValueValue() must Instructions: putput pack Flow control: if … then Flow control: try … thenthe Operators and Functions with Side Effects: operator ++ and --operator and Flow control: returnreturn. but Flow control: if … then Flow control: try … thenthe passed How does VScript::Value() work?: prioprio is lower, Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and so it resumes, making Vipsi command syntax: Operators Operators Glossary: Operatoroperator * it's currently pending Vipsi command syntax: Operators Operators Glossary: Operatoroperator.
- Glossary: ValueValue() Numeric functions: nownow needs to evaluate Flow control: if … then
Flow control: try … thenthe right side of Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Operators Operators Glossary: Operatoroperator. for List functions: thisthis purpose it Functions with varying return types: call Instructions: callcalls itself recursively with Flow control: if … then Flow control: try … thenthe precedence of Flow control: if … then Flow control: try … thenthe current Vipsi command syntax: Operators Operators Glossary: Operatoroperator *.
- Glossary: ValueValue() Instructions: getgets a result, all seems to be fine Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and calculates Flow control: if … then Flow control: try … thenthe current term, which is 66*77. huuh, i have evaluated something Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and it's Glossary: Valuevalue is 5082! Numeric functions: nownow it expects an Vipsi command syntax: Operators Operators Glossary: Operatoroperator.
- Glossary: ValueValue() Instructions: readreads Flow control: if … then
Flow control: try … thenthe token for ; which is Operators: Bitwise Not "~" Operators: Boolean Negation "!"not an Vipsi command syntax: Operators Operators Glossary: Operatoroperator. Glossary: ValueValue() decides, that List functions: thisthis is either an error Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or that Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Expressions Glossary: Expressionexpression Flow control: end Shell Immediate Commands: exit, quit, endends here. because it Flow control: do … loopdoes Operators: Bitwise Not "~" Operators: Boolean Negation "!"not know much about Flow control: if … then Flow control: try … thenthe context where it was called from, it simply Instructions: putputs back Flow control: if … then Flow control: try … thenthe unrecognized token Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Flow control: returnreturns Flow control: if … then Flow control: try … thenthe already evaluated term 5082, leaving it to Flow control: if … then Flow control: try … thenthe Functions with varying return types: call Instructions: callcaller to decide whether he can handle Flow control: if … then Flow control: try … thenthe unrecognized token ;.
- Glossary: ValueValue() Instructions: getgets Flow control: if … then
Flow control: try … thenthe required right-side result, all seems to be fine Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and calculates Flow control: if … then Flow control: try … thenthe current term, which is 55+5082. huuh, i have evaluated something Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and it's Glossary: Valuevalue is 5132! Numeric functions: nownow it expects an Vipsi command syntax: Operators Operators Glossary: Operatoroperator.
- Glossary: ValueValue() Instructions: readreads Flow control: if … then
Flow control: try … thenthe token for ; which is Operators: Bitwise Not "~" Operators: Boolean Negation "!"not an Vipsi command syntax: Operators Operators Glossary: Operatoroperator. Glossary: ValueValue() decides, that List functions: thisthis is either an error Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or that Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Expressions Glossary: Expressionexpression Flow control: end Shell Immediate Commands: exit, quit, endends here. because it Flow control: do … loopdoes Operators: Bitwise Not "~" Operators: Boolean Negation "!"not know much about Flow control: if … then Flow control: try … thenthe context where it was called from, it simply Instructions: putputs back Flow control: if … then Flow control: try … thenthe unrecognized token Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Flow control: returnreturns Flow control: if … then Flow control: try … thenthe already evaluated term 5132, leaving it to Flow control: if … then Flow control: try … thenthe Functions with varying return types: call Instructions: callcaller to decide whether he can handle Flow control: if … then Flow control: try … thenthe unrecognized token ;.
Flow control: if … then Flow control: try … thenthe initial Functions with varying return types: call Instructions: callcaller Instructions: getgets back Flow control: if … then Flow control: try … thenthe Glossary: Valuevalue 5132 Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and resumes parsing. he will run into Flow control: if … then Flow control: try … thenthe ; Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and probably decide that it's ok.
execute.h Flow control: if … then Flow control: try … thenthe main execution Flow control: do … looploop: VScript::Execute(…)
main.cp main()
mod_vipsi.c Apache module
mod_vipsi.cp Apache module
Stream.cp class Stream to implement vipsi's i/o commands
Stream.h
SystemIO.cp platform specific Text functions: file Instructions: filefile handling et.al.
SystemIO.h
token.cp Flow control: if … then Flow control: try … thenthe source Data Types: Text Glossary: text, text_valtext tokenizer: Tokenize()
token.h token (List functions: words Shell Immediate Commands: wordsword) definitions
Glossary: Valuevalue.h Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Expressions Glossary: Expressionexpression evaluator: VScript::Glossary: ValueValue(…)
custom_errors.h additional error codes
(included by Example Scripts: Librarieslibraries/kio/errors.h)
version.h version Text functions: file Instructions: filefile
VScript.cp List functions: thisthis class implements Flow control: if … then Flow control: try … thenthe Example Scripts: CGI Scripts Example Scripts: Scriptsscript interpreter
VScript.h
examples/ some Example Scriptsexample scripts
test_suite.vs syntax test suite
*.prefs Appendix: Preferences Filespreferences files for Installationinstallation
*.vl library Text functions: file Instructions: filefiles for Installationinstallation in /usr/lib/vipsi/
vip.xml Appendix: Syntax Highlightingsyntax highlighting for kate Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and kwrite
****Text functions: info Shell Immediate Commands: infoINFO****/
done.txt completed tasks
todo.txt pending tasks
unix/ Text functions: file Instructions: filefiles for Installationinstallation on unix-style systems
configure.in input data for autoconf
Makefile.in input data for configure
config.h.in input data for configure
configure Example Scripts: CGI Scripts Example Scripts: Scriptsscript to make a Makefile for your system
install.sh required Example Scripts: CGI Scripts Example Scripts: Scriptsscript
config.Operators: Subtract "-"sub required Example Scripts: CGI Scripts Example Scripts: Scriptsscript
aclocal.m4 required Example Scripts: CGI Scripts Example Scripts: Scriptsscript
config.guess required Example Scripts: CGI Scripts Example Scripts: Scriptsscript
shtool required Example Scripts: CGI Scripts Example Scripts: Scriptsscript
List functions: thisThis is a shared directory for vipsi Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and other projects.
compress/ data compression
cstrings/ c-string library with ad-hoc Data Types: Text Text functions: stringstring pool
ustring/ Developer Documentation: Class Stringclass String for Data Types: Text Glossary: text, text_valtext Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Integer numbers: Binary Floating point: Binary Text functions: binstrbinary data Data Types: Text Text functions: stringstrings
Instructions: sortsort/ Instructions: sortsort Vipsi command syntax: Functions Functions Glossary: Functionfunction template
utf-8/ utf-8 handling Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and convert: Text conversions: convert: Text conversions:text conversion library
Instructions: var How does VScript::Value() work?: Var*&var/ Developer Documentation: Class Varclass Var for Glossary: Variable, var_refvariables for interpreters et.al.
kio/ my all-times-needed header Text functions: file Instructions: filefiles
abort.cp aborting
abort.h
errors.cp set Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Instructions: getget errors
errors.h error codes Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Data Types: Text Glossary: text, text_valtexts
kio.h Flow control: if … then Flow control: try … thenthe include-it-all header
Numeric functions: loge Instructions: loglog.cp message logging
Numeric functions: loge Instructions: loglog.h
nice_defines.h frequently used simple Vipsi command syntax: Functions Functions Glossary: Functionfunctions
standard_types.h standard Data Types Invariants: Data typesdata types
unix/
file_utilities.cp unix Text functions: file Instructions: filefile utilities
file_utilities.h
os_utilities.cp unix system Functions with varying return types: call Instructions: callcall utilities
os_utilities.h
List functions: thisThis Introductionintroduction is aimed to developers, Operators: Bitwise Not "~" Operators: Boolean Negation "!"not admins. in essence it says nothing more than sourceforge's documentation, it only leaves out 90% of it. :-) though it's written for developers working for vipsi, it's generally appliable for any other project Operators: Make Identifier "@"at sourceforge.
First i'll tell you some basics. Flow control: if … then Flow control: try … thenthen all Flow control: if … then Flow control: try … thenthe unix stuff; as far as i consider it useful. finally i hope i can Operators: Add to Variable "+=" Operators: Add "+"add some Windows stuff too.
Flow control: if … thenIf you Numeric functions: findfind an error, something Built-in functions and constants: Unclear: Built-in instructions: Unclear:unclear Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or important to Operators: Add to Variable "+=" Operators: Add "+"add, please send me a note Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and i'll Operators: Add to Variable "+=" Operators: Add "+"add it.
When multiple developers work on Flow control: if … then Flow control: try … thenthe same source it is very likely that they simultaneously modify Flow control: if … then Flow control: try … thenthe same Text functions: file Instructions: filefiles. there needs to be some means of synchronization, merging Flow control: if … then Flow control: try … thenthe different Flow controlbranches back into Flow control: if … then Flow control: try … thenthe official source. you won't Flow control: do … loopdo List functions: thisthis by hand.
Flow control: if … then Flow control: try … thenThe main source is hosted Operators: Make Identifier "@"at sourceforge Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and it is called Flow control: if … then Flow control: try … thenthe "repository". when you decide to join Flow control: if … then Flow control: try … thenthe effort on Flow control: if … then Flow control: try … thenthe project, you must retrieve a copy of Flow control: if … then Flow control: try … thenthe source, formally called "checkout", just like a book from Flow control: if … then Flow control: try … thenthe library.
Numeric functions: nowNow you can work with your List functions: localslocal copy of Flow control: if … then Flow control: try … thenthe source, make modifications to it, compile it, verify that it works as expected Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Operators: Add to Variable "+=" Operators: Add "+"add some documentation.
Regularly you must synchronize Flow control: if … then Flow control: try … thenthe main source, so that your fellow developpers can use your Instructions: newnew Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or improved code. List functions: thisthis is done in two Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or - maybe - three steps:
Operators: Bitwise Not "~" Operators: Boolean Negation "!"note: Flow control: if … thenif you can't resolve Flow control: if … then Flow control: try … thenthe problems after you have updated your List functions: localslocal copy, you may well delete your List functions: localslocal copy of Flow control: if … then Flow control: try … thenthe source discarding all your modifications so far. to reduce Flow control: if … then Flow control: try … thenthe probability of such an uncomfortable situation you should update your source right before you start work on it, thus incorporating all commits which were made in Flow control: if … then Flow control: try … thenthe past hours Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or days, Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and synchronize Flow control: if … then Flow control: try … thenthe repository every time you come to a safe state in your source modifications, which will Operators: Bitwise Not "~" Operators: Boolean Negation "!"not leave it unusable for others.
Obviously you need cvs installed on your computer to retrieve Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and hand back source from Flow control: if … then Flow control: try … thenthe repository. you hopefully already have Flow control: if … then Flow control: try … thenthe cvs command installed on your system. Flow control: if … thenif Operators: Bitwise Not "~" Operators: Boolean Negation "!"not, slot-in your OS installer |