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 Item selector "[]": 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) 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) 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 Item selector "[]": 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 Item selector "[]": Lists 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 Item selector "[]": Lists Glossary: list, list_vallists; e.g. you can Operators: Multiply to Variable "*=" Operators: Multiply "*"multiply all Data Types: Lists and arrays Item selector "[]": Lists 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 Item selector "[]": Lists 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 Item selector "[]": 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) 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 Item selector "[]": Text Glossary: text, text_valtext, since List functions: thisthis is Flow control: if … then Flow control: try … thenthe natural format for Data Types: Text Item selector "[]": Text Glossary: text, text_valtext representation in vipsi, because Data Types: Text Item selector "[]": 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 Item selector "[]": Lists 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 Item selector "[]": 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 Item selector "[]": 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 Item selector "[]": 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 Item selector "[]": 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 Item selector "[]": 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/local/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 Item selector "[]": 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 Item selector "[]": Text Glossary: text, text_valtexts
kio.h Flow control: if … then Flow control: try … thenthe include-it-all header
Numeric functions: log Numeric functions: loge Instructions: loglog.cp message logging
Numeric functions: log 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 List functions: join Instructions: joinjoin 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 Instructions: cd Shell Immediate Commands: cdCD Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and install it.
It is required to Numeric functions: log Numeric functions: loge Instructions: loglog into Flow control: if … then Flow control: try … thenthe cvs server Operators: Make Identifier "@"at sourceforge using Flow control: if … then Flow control: try … thenthe secure shell ssh. so you must also verify that you have installed Flow control: if … then Flow control: try … thenthe ssh command.
A comprehensive introduction to the ssh can be found on sourceforge's documentation page.
cvs looks for some environment Glossary: Variable, var_refvariables, which should be set before it is executed. you can also supply these Glossary: Valuevalues as command line parameters there are 3 environment Glossary: Variable, var_refvariables to set.
Flow control: if … thenIf you use bash Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or something similar:
bash$ export EDITOR=joe
bash$ export CVS_RSH=ssh
bash$ export CVSROOT=YOUR_NAME@cvs.sourceforge.net:/cvsroot/vipsi
Flow control: if … thenif you use Flow control: if … then Flow control: try … thenthe csh:
csh> setenv EDITOR joe
csh> setenv CVS_RSH ssh
csh> setenv CVSROOT YOUR_NAME@cvs.sourceforge.net:/cvsroot/vipsi
Flow control: if … then Flow control: try … thenThe EDITOR Glossary: Variable, var_refvariable is only required for committing Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and you may have configured your system so that List functions: thisthis Glossary: Variable, var_refvariable is already set when you start a shell. set it to your favourite editor Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or you'll Flow control: end Shell Immediate Commands: exit, quit, endend up with vi, Flow control: if … then Flow control: try … thenthe default.
CVS_RSH tells your cvs that it must use Flow control: if … then Flow control: try … thenthe ssh for connections to Flow control: if … then Flow control: try … thenthe cvs Operators: Make Identifier "@"at sourceforge. List functions: thisthis Glossary: Variable, var_refvariable is required in all operations.
CVSROOT tells your cvs Flow control: if … then Flow control: try … thenthe location of Flow control: if … then Flow control: try … thenthe repository. List functions: thisthis is required only for Flow control: if … then Flow control: try … thenthe initial checkout. you can also supply List functions: thisthis information directly to Flow control: if … then Flow control: try … thenthe cvs command with Flow control: if … then Flow control: try … thenthe -d option.
Go to Flow control: if … then Flow control: try … thenthe directory where you want to settle your List functions: localslocal copy of Flow control: if … then Flow control: try … thenthe source. it is also ok to retrieve it anywhere Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and copy Flow control: if … then Flow control: try … thenthe whole thing around on your harddisk.
Checkout Flow control: if … then Flow control: try … thenthe source. vipsi's source tree is currently List functions: split Instructions: splitsplit into three subtrees:
your_dev_root/
your_dev_root/vipsi/ <-- from project "vipsi"
your_dev_root/vipsi/documentation <-- from project "vipsi"
your_dev_root/vipsi/Example Scripts: Librarieslibraries <-- from project "lib-kio"
so, to checkout all sources Flow control: do … loopdo Flow control: if … then Flow control: try … thenthe following: pre bash$ Instructions: cd Shell Immediate Commands: cdcd YOUR_DEV_ROOT bash$ export CVS_RSH=ssh bash$ cvs -d:ext:YOU@cvs.sourceforge.net:/cvsroot/vipsi checkout vipsi bash$ cvs -d:ext:YOU@cvs.sourceforge.net:/cvsroot/vipsi checkout documentation bash$ cvs -d:ext:YOU@cvs.sourceforge.net:/cvsroot/lib-kio checkout Example Scripts: Librarieslibraries bash$ mv Example Scripts: Librarieslibraries vipsi/ bash$ mv documentation vipsi/
Numeric functions: nownow you have your own copy of Flow control: if … then Flow control: try … thenthe source Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and can work on it. don't touch Flow control: if … then Flow control: try … thenthe folders named CVS. they contain administrative Text functions: file Instructions: filefiles for cvs Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and must remain in Flow control: if … then Flow control: try … thenthe folders they reside in.
instruct cvs to use Flow control: if … then Flow control: try … thenthe ssh, go to Flow control: if … then Flow control: try … thenthe directory which you want to update Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Flow control: do … loopdo it:
bash$ export CVS_RSH=ssh
bash$ Instructions: cd Shell Immediate Commands: cdcd YOUR_DEV_ROOT/vipsi
bash$ cvs update
cvs most times works on Flow control: if … then Flow control: try … thenthe current directory Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and retrieves most required informations from Flow control: if … then Flow control: try … thenthe data stored in Flow control: if … then Flow control: try … thenthe CVS folders. so in List functions: thisthis case you only need to define CVS_RSH so that Flow control: if … then Flow control: try … thenthe ssh is used. perhaps some time they will store List functions: thisthis in Flow control: if … then Flow control: try … thenthe CVS folders too.
there are some useful options to update which you may decide to use:
Flow control: if … then Flow control: try … thenthe option -d tells cvs that it shall create Instructions: newnew subdirectories in your List functions: localslocal source tree to Numeric functions: matchmatch Instructions: newnew directories in Flow control: if … then Flow control: try … thenthe repository. cvs Flow control: do … loopdoes Operators: Bitwise Not "~" Operators: Boolean Negation "!"not create Flow control: if … then Flow control: try … thenthem by default! you must specify List functions: thisthis option.
Appending option -P has Flow control: if … then Flow control: try … thenthe opposite effect: Flow control: if … thenif a subdirectory becomes empty after cvs update, Flow control: if … then Flow control: try … thenthen it is silently removed.
You may Numeric functions: findfind it best to always Functions with varying return types: include Instructions: includeinclude these two options:
bash$ cvs update -dP
When you update your copy of Flow control: if … then Flow control: try … thenthe source, cvs Data Types: Lists and arrays Item selector "[]": Lists Glossary: list, list_vallists all Text functions: file Instructions: filefiles inspected Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and prepends Flow control: if … then Flow control: try … thenthem with a dir: flagsflag:
cvs server: Updating . Text functions: info Shell Immediate Commands: infoinfo: cvs starts to inspect Flow control: if … then Flow control: try … thenthe current directory
M Glossary: Valuevalue.cp Glossary: Valuevalue.cp has been locally modified (by you)
P Glossary: Valuevalue.h Glossary: Valuevalue.h is updated in Flow control: if … then Flow control: try … thenthe cvs, patches were transferred
U verrors.h verrors.h is updated in Flow control: if … then Flow control: try … thenthe cvs, Text functions: file Instructions: filefile was transferred anew
C token.h modified simultaneously in overlapping lines: collision!
You must Instructions: editedit Flow control: if … then Flow control: try … thenthe incriminated Text functions: file Instructions: filefiles, in Flow control: if … then Flow control: try … thenthe above example token.h, Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and work out Flow control: if … then Flow control: try … thenthe problems manually before you can commit your changes. differences are marked similarly to a diff output Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and look very prominent. working out Flow control: if … then Flow control: try … thenthe problems may be easy - Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or nearly impossible. you may decide to discard your changes Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and checkout Flow control: if … then Flow control: try … thenthe source anew, because you can't resolve Flow control: if … then Flow control: try … thenthe collissions. to reduce Flow control: if … then Flow control: try … thenthe probability of such an uncomfortable situation update your source regularly!
Go to Flow control: if … then Flow control: try … thenthe directory which you want to commit back to Flow control: if … then Flow control: try … thenthe repository. Flow control: if … then Flow control: try … thenthen commit your source:
bash$ export CVS_RSH=ssh
bash$ Instructions: cd Shell Immediate Commands: cdcd YOUR_DEV_ROOT/vipsi
bash$ cvs commit -m "Operators: Add to Variable "+=" Operators: Add "+"add a Vipsi command syntax: Commentscomment about List functions: thisthis commit here"
Flow control: if … thenIf you forget Flow control: if … then Flow control: try … thenthe Vipsi command syntax: Commentscomment Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or intentionally leave it out, cvs starts Flow control: if … then Flow control: try … thenthe editor as mentioned above for you to insert one. in List functions: thisthis case it is better that you have Flow control: if … then Flow control: try … thenthe EDITOR Glossary: Variable, var_refvariable set:
bash$ export EDITOR=joe
bash$ export CVS_RSH=ssh
bash$ Instructions: cd Shell Immediate Commands: cdcd YOUR_DEV_ROOT/vipsi
bash$ cvs commit
List functions: thisThis will fire up Flow control: if … then Flow control: try … thenthe editor joe after you have entered Flow control: if … then Flow control: try … thenthe commit command.
Sometimes you must introduce Instructions: newnew Text functions: file Instructions: filefiles into Flow control: if … then Flow control: try … thenthe source tree. cvs Flow control: do … loopdoes Operators: Bitwise Not "~" Operators: Boolean Negation "!"not automatically Operators: Add to Variable "+=" Operators: Add "+"add all Text functions: file Instructions: filefiles in Flow control: if … then Flow control: try … thenthe directories you commit to Flow control: if … then Flow control: try … thenthe repository. it only updates Flow control: if … then Flow control: try … thenthe Text functions: file Instructions: filefiles which it initially got with checkout. in fact, i have a lot more Text functions: file Instructions: filefiles around in vipsi's source tree, tests, docs Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and most notably intermediate Text functions: file Instructions: filefiles from Flow control: if … then Flow control: try … thenthe compiler. they are more Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or less ignored by cvs.
To Operators: Add to Variable "+=" Operators: Add "+"add a Text functions: file Instructions: filefile Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or directory to Flow control: if … then Flow control: try … thenthe repository, you must create it, Operators: Add to Variable "+=" Operators: Add "+"add it to your List functions: localslocal cvs Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and submit Flow control: if … then Flow control: try … thenthe change:
bash$ export CVS_RSH=ssh
bash$ Instructions: cd Shell Immediate Commands: cdcd YOUR_DEV_ROOT/vipsi
bash$ cvs update
bash$ mkdir testdir
bash$ cvs Operators: Add to Variable "+=" Operators: Add "+"add testdir
bash$ cvs commit -m "it's a test only"
Don't Operators: Add to Variable "+=" Operators: Add "+"add directories just for fun - they cannot be removed from Flow control: if … then Flow control: try … thenthe cvs repository!
when you reorganize parts of your source it may also happen, that entire Text functions: file Instructions: filefiles Operators: Boolean Or with Variable "||=" Operators: Bitwise Or with Variable "|=" Operators: Bitwise Or "|" Operators: Boolean Or "||"or directories become obsolete. to remove a Text functions: file Instructions: filefile from Flow control: if … then Flow control: try … thenthe repository, you first must delete it in your List functions: localslocal tree (for security reasons), Flow control: if … then Flow control: try … thenthen remove it from your List functions: localslocal cvs Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and finally submit Flow control: if … then Flow control: try … thenthe change:
bash$ export CVS_RSH=ssh
bash$ Instructions: cd Shell Immediate Commands: cdcd YOUR_DEV_ROOT/vipsi
bash$ cvs update
bash$ rm testfile
bash$ cvs rm testfile
bash$ cvs commit -m "it's a test only"
Directories cannot be removed. Flow control: if … then Flow control: try … thenthe only thing you can Flow control: do … loopdo is to delete all Text functions: file Instructions: filefiles in it Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and use Flow control: if … then Flow control: try … thenthe -P option whenever you update your List functions: localslocal source. Flow control: if … then Flow control: try … thenthe -P option prunes empty directories from your List functions: localslocal copy, as told above.
Unluckily enough, List functions: thisthis is also Operators: Bitwise Not "~" Operators: Boolean Negation "!"not supported by Flow control: if … then Flow control: try … thenthe cvs. instead, you must delete Flow control: if … then Flow control: try … thenthe old Text functions: file Instructions: filefile Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and Operators: Add to Variable "+=" Operators: Add "+"add it with Flow control: if … then Flow control: try … thenthe Instructions: newnew Vipsi command syntax: Identifiers (names) Identifiers, names Operators: Make Identifier "@" Text functions: name Glossary: Name, Identifiername:
bash$ export CVS_RSH=ssh
bash$ Instructions: cd Shell Immediate Commands: cdcd YOUR_DEV_ROOT/vipsi
bash$ cvs update
bash$ mv oldname newname
bash$ cvs rm oldname
bash$ cvs Operators: Add to Variable "+=" Operators: Add "+"add newname
bash$ cvs commit -m "it's a test only"
Because directories cannot be removed from Flow control: if … then Flow control: try … thenthe cvs, they cannot be "moved" List functions: thisthis way either. all you can Flow control: do … loopdo is create a Instructions: newnew directory Operators: Boolean And with Variable "&&=" Operators: Bitwise And with Variable "&=" Operators: Bitwise And "&" Operators: Boolean And "&&"and ignore Flow control: if … then Flow control: try … thenthe old one...
Still working on that - i don't have Windows! maybe s.o. Flow control: if … then Flow control: try … thenelse will Flow control: do … loopdo List functions: thisthis for me?
|