diff options
author | geronimo <geronimo013@gmx.de> | 2012-07-22 11:38:43 +0200 |
---|---|---|
committer | geronimo <geronimo013@gmx.de> | 2012-07-22 11:38:43 +0200 |
commit | ab7186c6c116629983dc506c4b53794026518455 (patch) | |
tree | f5508dd32f35509fb45f7cf046a0a8e0bc1c4605 /libs/util | |
parent | 04a867b018a8c6761047ef8878a4434692673084 (diff) | |
download | cmp-ab7186c6c116629983dc506c4b53794026518455.tar.gz cmp-ab7186c6c116629983dc506c4b53794026518455.tar.bz2 |
worked out new file class
Diffstat (limited to 'libs/util')
-rw-r--r-- | libs/util/include/AbstractListAssembler.h | 2 | ||||
-rw-r--r-- | libs/util/include/Codec.h | 2 | ||||
-rw-r--r-- | libs/util/include/JSonWriter.h | 14 | ||||
-rw-r--r-- | libs/util/include/MD5Calculator.h | 2 | ||||
-rw-r--r-- | libs/util/include/ManagedMap.h | 2 | ||||
-rw-r--r-- | libs/util/include/ManagedVector.h | 2 | ||||
-rw-r--r-- | libs/util/include/NamedValue.h | 2 | ||||
-rw-r--r-- | libs/util/include/StringBuilder.h | 9 | ||||
-rw-r--r-- | libs/util/include/util.h | 2 | ||||
-rw-r--r-- | libs/util/src/AbstractListAssembler.cc | 2 | ||||
-rw-r--r-- | libs/util/src/Codec.cc | 2 | ||||
-rw-r--r-- | libs/util/src/JSonWriter.cc | 39 | ||||
-rw-r--r-- | libs/util/src/MD5Calculator.cc | 2 | ||||
-rw-r--r-- | libs/util/src/ManagedMap.cc | 2 | ||||
-rw-r--r-- | libs/util/src/ManagedVector.cc | 2 | ||||
-rw-r--r-- | libs/util/src/NamedValue.cc | 2 | ||||
-rw-r--r-- | libs/util/src/StringBuilder.cc | 31 | ||||
-rw-r--r-- | libs/util/src/util.cc | 2 | ||||
-rw-r--r-- | libs/util/util.layout | 22 | ||||
-rw-r--r-- | libs/util/util.layout.save | 28 |
20 files changed, 108 insertions, 63 deletions
diff --git a/libs/util/include/AbstractListAssembler.h b/libs/util/include/AbstractListAssembler.h index 1e547e4..bf0c81f 100644 --- a/libs/util/include/AbstractListAssembler.h +++ b/libs/util/include/AbstractListAssembler.h @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: AbstractListAssembler.h - * Created: 6. Juli 2012, 09:38 + * Created: 6. Juli 2012, 09 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/include/Codec.h b/libs/util/include/Codec.h index 80352d7..ceaea70 100644 --- a/libs/util/include/Codec.h +++ b/libs/util/include/Codec.h @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: Codec.h - * Created: 21. Mai 2012, 14:00 + * Created: 21. Mai 2012, 14 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/include/JSonWriter.h b/libs/util/include/JSonWriter.h index 732daec..e20c240 100644 --- a/libs/util/include/JSonWriter.h +++ b/libs/util/include/JSonWriter.h @@ -1,25 +1,25 @@ /** * ======================== legal notice ====================== - * + * * File: JSonWriter.h - * Created: 6. Juli 2012, 12:47 + * Created: 6. Juli 2012, 12 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries - * + * * CMP - compound media player - * + * * is a client/server mediaplayer intended to play any media from any workstation * without the need to export or mount shares. cmps is an easy to use backend * with a (ready to use) HTML-interface. Additionally the backend supports * authentication via HTTP-digest authorization. * cmpc is a client with vdr-like osd-menues. - * + * * Copyright (c) 2012 Reinhard Mantey, some rights reserved! * published under Creative Commons by-sa * For details see http://creativecommons.org/licenses/by-sa/3.0/ - * + * * The cmp project's homepage is at http://projects.vdr-developer.org/projects/cmp - * + * * -------------------------------------------------------------- */ #ifndef JSONWRITER_H diff --git a/libs/util/include/MD5Calculator.h b/libs/util/include/MD5Calculator.h index 400aba1..0dca5d4 100644 --- a/libs/util/include/MD5Calculator.h +++ b/libs/util/include/MD5Calculator.h @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: MD5Calculator.h - * Created: 3. Juli 2012, 13:15 + * Created: 3. Juli 2012, 13 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/include/ManagedMap.h b/libs/util/include/ManagedMap.h index c71de85..c780a6f 100644 --- a/libs/util/include/ManagedMap.h +++ b/libs/util/include/ManagedMap.h @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: ManagedMap.h - * Created: 7. Juli 2012, 08:28 + * Created: 7. Juli 2012, 08 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/include/ManagedVector.h b/libs/util/include/ManagedVector.h index 7fa7af2..b4ca9a2 100644 --- a/libs/util/include/ManagedVector.h +++ b/libs/util/include/ManagedVector.h @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: ManagedVector.h - * Created: 6. Juli 2012, 19:07 + * Created: 6. Juli 2012, 19 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/include/NamedValue.h b/libs/util/include/NamedValue.h index 329061d..8730d3d 100644 --- a/libs/util/include/NamedValue.h +++ b/libs/util/include/NamedValue.h @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: NamedValue.h - * Created: 3. Juli 2012, 17:43 + * Created: 3. Juli 2012, 17 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/include/StringBuilder.h b/libs/util/include/StringBuilder.h index aea9975..a0e7259 100644 --- a/libs/util/include/StringBuilder.h +++ b/libs/util/include/StringBuilder.h @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: StringBuilder.h - * Created: 6. Juli 2012, 10:54 + * Created: 6. Juli 2012, 10 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * @@ -35,6 +35,7 @@ public: virtual ~cStringBuilder(); cStringBuilder &Append(const char *Text); + cStringBuilder &Append(char c); cStringBuilder &Append(bool v, const char *TrueValue = "X", const char *FalseValue="-"); cStringBuilder &Append(double v); cStringBuilder &Append(int v); @@ -47,12 +48,16 @@ public: void Rewind(void) { readOffset = 0; } size_t Copy(char *Buf, size_t BufSize); + char *toString(void); + private: void init(void); void Write(const char *p); int chunkSize; size_t readOffset; ///< read offest is the offset over all chunks (thus goes from 0 to size) - int writeOffset; ///< write offset is the offset inside the last chunk (thus goes from 0 to chunkSize) + ///< Copy can be called subsequently, if Buf is smaller than StringBuilders size + int writeOffset; ///< write offset is the offset inside the last chunk (thus goes from 0 to chunkSize) + char *firstChunk; ///< for debugging purpose only cManagedVector pool; }; diff --git a/libs/util/include/util.h b/libs/util/include/util.h index 2b355cc..daa9b8f 100644 --- a/libs/util/include/util.h +++ b/libs/util/include/util.h @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: util.h - * Created: 3. Juli 2012, 13:00 + * Created: 3. Juli 2012, 13 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/src/AbstractListAssembler.cc b/libs/util/src/AbstractListAssembler.cc index e83f965..a32826e 100644 --- a/libs/util/src/AbstractListAssembler.cc +++ b/libs/util/src/AbstractListAssembler.cc @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: AbstractListAssembler.cc - * Created: 6. Juli 2012, 09:38 + * Created: 6. Juli 2012, 09 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/src/Codec.cc b/libs/util/src/Codec.cc index bf6acf3..4a1899d 100644 --- a/libs/util/src/Codec.cc +++ b/libs/util/src/Codec.cc @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: Codec.cc - * Created: 21. Mai 2012, 14:00 + * Created: 21. Mai 2012, 14 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/src/JSonWriter.cc b/libs/util/src/JSonWriter.cc index cde994c..ec9b1dc 100644 --- a/libs/util/src/JSonWriter.cc +++ b/libs/util/src/JSonWriter.cc @@ -1,31 +1,32 @@ /** * ======================== legal notice ====================== - * + * * File: JSonWriter.cc - * Created: 6. Juli 2012, 12:47 + * Created: 6. Juli 2012, 12 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries - * + * * CMP - compound media player - * + * * is a client/server mediaplayer intended to play any media from any workstation * without the need to export or mount shares. cmps is an easy to use backend * with a (ready to use) HTML-interface. Additionally the backend supports * authentication via HTTP-digest authorization. * cmpc is a client with vdr-like osd-menues. - * + * * Copyright (c) 2012 Reinhard Mantey, some rights reserved! * published under Creative Commons by-sa * For details see http://creativecommons.org/licenses/by-sa/3.0/ - * + * * The cmp project's homepage is at http://projects.vdr-developer.org/projects/cmp - * + * * -------------------------------------------------------------- */ #include <JSonWriter.h> #include <StringBuilder.h> #include <Logging.h> #include <stdio.h> +#define DEBUG 1 cJSonWriter::cJSonWriter(cStringBuilder &StringBuilder) : lastState(JS_Unknown) @@ -57,8 +58,14 @@ cJSonWriter::JSonState cJSonWriter::PopState(void) } cJSonWriter &cJSonWriter::Object(void) { - if (lastState == JS_Object) sb.Append(","); - sb.Append("{"); + if (lastState == JS_Object) { +#ifdef DEBUG + sb.Append(",\n"); +#else + sb.Append(", "); +#endif + } + sb.Append("{ "); PushState(JS_Object); lastState = JS_Unknown; return *this; @@ -70,7 +77,7 @@ cJSonWriter &cJSonWriter::EndObject(void) { } else { PopState(); - sb.Append("}"); + sb.Append(" }"); } return *this; } @@ -80,7 +87,7 @@ cJSonWriter &cJSonWriter::Array(void) { esyslog("JSonWriter::Array(): invalid status %d - should be %d", State(), JS_Key); } else { - sb.Append("["); + sb.Append("[ "); PushState(JS_Array); lastState = JS_Unknown; } @@ -92,7 +99,7 @@ cJSonWriter &cJSonWriter::EndArray(void) { esyslog("JSonWriter::EndArray(): invalid status %d - should be %d", State(), JS_Array); } else { - sb.Append("]"); + sb.Append(" ]"); PopState(); if (State() == JS_Key) PopState(); // array is a value, so pop the key } @@ -104,7 +111,13 @@ cJSonWriter &cJSonWriter::Key(const char *Name) { esyslog("JSonWriter::Key(): invalid status %d - should be %d", State(), JS_Object); } else { - if (lastState == JS_Key) sb.Append(", "); + if (lastState == JS_Key) { +#ifdef DEBUG + sb.Append(",\n"); +#else + sb.Append(", "); +#endif + } sb.Append("\"").Append(Name).Append("\": "); PushState(JS_Key); } diff --git a/libs/util/src/MD5Calculator.cc b/libs/util/src/MD5Calculator.cc index 7f2aea4..bc5e243 100644 --- a/libs/util/src/MD5Calculator.cc +++ b/libs/util/src/MD5Calculator.cc @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: MD5Calculator.cc - * Created: 3. Juli 2012, 13:15 + * Created: 3. Juli 2012, 13 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/src/ManagedMap.cc b/libs/util/src/ManagedMap.cc index e0dd528..ad3410d 100644 --- a/libs/util/src/ManagedMap.cc +++ b/libs/util/src/ManagedMap.cc @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: ManagedMap.cc - * Created: 7. Juli 2012, 08:48 + * Created: 7. Juli 2012, 08 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/src/ManagedVector.cc b/libs/util/src/ManagedVector.cc index 7a67bfb..c91f3d0 100644 --- a/libs/util/src/ManagedVector.cc +++ b/libs/util/src/ManagedVector.cc @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: ManagedVector.cc - * Created: 7. Juli 2012, 08:30 + * Created: 7. Juli 2012, 08 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/src/NamedValue.cc b/libs/util/src/NamedValue.cc index f807cb6..56a8abd 100644 --- a/libs/util/src/NamedValue.cc +++ b/libs/util/src/NamedValue.cc @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: NamedValue.cc - * Created: 3. Juli 2012, 17:43 + * Created: 3. Juli 2012, 17 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/src/StringBuilder.cc b/libs/util/src/StringBuilder.cc index 8e90151..28b048e 100644 --- a/libs/util/src/StringBuilder.cc +++ b/libs/util/src/StringBuilder.cc @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: StringBuilder.cc - * Created: 6. Juli 2012, 10:54 + * Created: 6. Juli 2012, 10 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * @@ -37,6 +37,7 @@ cStringBuilder::cStringBuilder(const char *First) : chunkSize(127) , readOffset(0) , writeOffset(0) + , firstChunk(NULL) , pool(freeStringCallback) { init(); @@ -47,6 +48,7 @@ cStringBuilder::cStringBuilder(int ChunkSize) : chunkSize(ChunkSize) , readOffset(0) , writeOffset(0) + , firstChunk(NULL) , pool(freeStringCallback) { init(); @@ -61,12 +63,13 @@ void cStringBuilder::init(void) char *first = (char *) malloc(chunkSize); pool.push_back(first); + firstChunk = first; } void cStringBuilder::Write(const char *Text) { if (!Text) { - esyslog("ERROR: text to add is a NULL-ponter!"); + esyslog("ERROR: text to add is a NULL-pointer!"); return; } uint chunkFree = chunkSize - writeOffset; @@ -130,6 +133,18 @@ cStringBuilder &cStringBuilder::Append(const char* Text) return *this; } +cStringBuilder &cStringBuilder::Append(char c) +{ + char buf[2]; + + *buf = c; + buf[1] = 0; + + Write(buf); + + return *this; +} + cStringBuilder &cStringBuilder::Append(bool v, const char *TrueValue, const char *FalseValue) { if (v) Write(TrueValue); @@ -176,3 +191,15 @@ cStringBuilder &cStringBuilder::Append(size_t v) return *this; } + +char *cStringBuilder::toString(void) +{ + char *rv = (char *) malloc(Size() + 1); + + if (rv) { + readOffset = 0; + Copy(rv, Size() + 1); + *(rv + Size()) = 0; + } + return rv; +} diff --git a/libs/util/src/util.cc b/libs/util/src/util.cc index 8caac91..61027a1 100644 --- a/libs/util/src/util.cc +++ b/libs/util/src/util.cc @@ -2,7 +2,7 @@ * ======================== legal notice ====================== * * File: util.cc - * Created: 4. Juli 2012, 05:56 + * Created: 4. Juli 2012, 05 * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a> * Project: libutil - base classes used by other libraries * diff --git a/libs/util/util.layout b/libs/util/util.layout index d9630b6..00f0d49 100644 --- a/libs/util/util.layout +++ b/libs/util/util.layout @@ -1,19 +1,14 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <CodeBlocks_layout_file> <ActiveTarget name="Debug" /> - <File name="src/AbstractListAssembler.cc" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> - <Cursor> - <Cursor1 position="0" topLine="0" /> - </Cursor> - </File> <File name="include/ManagedMap.h" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> <Cursor1 position="0" topLine="0" /> </Cursor> </File> - <File name="src/StringBuilder.cc" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="src/StringBuilder.cc" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> - <Cursor1 position="3065" topLine="38" /> + <Cursor1 position="1766" topLine="0" /> </Cursor> </File> <File name="include/ManagedVector.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> @@ -21,17 +16,17 @@ <Cursor1 position="0" topLine="0" /> </Cursor> </File> - <File name="include/StringBuilder.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="include/StringBuilder.h" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> - <Cursor1 position="560" topLine="0" /> + <Cursor1 position="2104" topLine="0" /> </Cursor> </File> - <File name="src/JSonWriter.cc" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="src/JSonWriter.cc" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> <Cursor1 position="1655" topLine="3" /> </Cursor> </File> - <File name="include/JSonWriter.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="include/JSonWriter.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> <Cursor1 position="1532" topLine="0" /> </Cursor> @@ -41,4 +36,9 @@ <Cursor1 position="0" topLine="0" /> </Cursor> </File> + <File name="src/AbstractListAssembler.cc" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <Cursor> + <Cursor1 position="0" topLine="0" /> + </Cursor> + </File> </CodeBlocks_layout_file> diff --git a/libs/util/util.layout.save b/libs/util/util.layout.save index 0fa61b3..8ba253a 100644 --- a/libs/util/util.layout.save +++ b/libs/util/util.layout.save @@ -1,44 +1,44 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <CodeBlocks_layout_file> <ActiveTarget name="Debug" /> - <File name="src/AbstractListAssembler.cc" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="include/ManagedMap.h" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> <Cursor1 position="0" topLine="0" /> </Cursor> </File> - <File name="src/ManagedMap.cc" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="src/StringBuilder.cc" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> - <Cursor1 position="0" topLine="0" /> + <Cursor1 position="1766" topLine="0" /> </Cursor> </File> - <File name="include/ManagedMap.h" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="include/ManagedVector.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> <Cursor1 position="0" topLine="0" /> </Cursor> </File> - <File name="src/StringBuilder.cc" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="include/StringBuilder.h" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> - <Cursor1 position="3065" topLine="38" /> + <Cursor1 position="1114" topLine="0" /> </Cursor> </File> - <File name="src/JSonWriter.cc" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="src/JSonWriter.cc" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> - <Cursor1 position="294" topLine="0" /> + <Cursor1 position="1655" topLine="3" /> </Cursor> </File> - <File name="include/ManagedVector.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="include/JSonWriter.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> - <Cursor1 position="0" topLine="0" /> + <Cursor1 position="1532" topLine="0" /> </Cursor> </File> - <File name="include/StringBuilder.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="src/ManagedMap.cc" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> - <Cursor1 position="560" topLine="0" /> + <Cursor1 position="0" topLine="0" /> </Cursor> </File> - <File name="include/JSonWriter.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> + <File name="src/AbstractListAssembler.cc" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <Cursor> - <Cursor1 position="773" topLine="0" /> + <Cursor1 position="0" topLine="0" /> </Cursor> </File> </CodeBlocks_layout_file> |