- Timestamp:
- Sep 15, 2005, 1:01:00 AM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/defs/debug.h
r5174 r5183 98 98 #define PRINTFVDEBUG PRINTF5 99 99 100 //#ifdef 100 #if DEBUG <= 3 101 101 #define PRINTF(x) PRINT(x) 102 #endif 102 103 #define PRINT_EXEC ShellBuffer::addBufferLineStatic 103 104 -
trunk/src/lib/shell/shell.cc
r5181 r5183 46 46 this->setName("Shell"); 47 47 48 // Element2D and generals 48 49 this->setAbsCoor2D(3, -400); 49 50 this->textSize = 15; 50 51 this->lineSpacing = 5; 51 52 this->bActive = false; 52 53 53 54 54 // BUFFER -
trunk/src/lib/shell/shell.h
r5181 r5183 48 48 49 49 // BUFFERS 50 void flush();51 50 void setBufferDisplaySize(unsigned int bufferDisplaySize); 52 51 void printToDisplayBuffer(const char* text); 52 void flush(); 53 53 54 54 void clear(); … … 56 56 // EventListener 57 57 virtual void process(const Event &event); 58 59 58 // Element2D-functions 60 59 virtual void draw() const; … … 63 62 64 63 private: 65 66 64 // helpers // 67 65 Vector calculateLinePosition(unsigned int lineNumber); 68 // void testI (int i); 69 // void testS (const char* s); 70 // void testB (bool b); 71 // void testF (float f); 72 // void testSF (const char* s, float f); 66 67 // void testI (int i); 68 // void testS (const char* s); 69 // void testB (bool b); 70 // void testF (float f); 71 // void testSF (const char* s, float f); 73 72 74 73 private: -
trunk/src/lib/shell/shell_buffer.cc
r5177 r5183 91 91 #endif 92 92 93 vprintf(line, arguments);93 vprintf(line, arguments); 94 94 #if DEBUG < 3 95 95 else -
trunk/src/lib/shell/shell_completion.cc
r5182 r5183 20 20 #include "shell_input.h" 21 21 22 #include "substring.h" 22 23 #include "base_object.h" 23 24 #include "class_list.h" … … 62 63 bool ShellCompletion::autoComplete(ShellInput* input) 63 64 { 65 char* completionLine; 66 67 long classID; //< the classID retrieved from the Class. 68 char* classBegin; //< the beginn of the slass string 69 char* classEnd; //< the end of the class string 70 char* objectBegin; //< the begin of the object string 71 char* objectEnd; //< the end of the object string 72 char* functionBegin; //< the begin of the function string 73 char* functionEnd; //< the end of the function string 74 64 75 if (input != NULL) 65 76 this->input = input; 66 //PRINTF(3)("AutoCompletion not implemented yet\n"); 67 68 char* completionLine = new char[strlen(this->input->getText())+1]; 77 78 SubString(input->getText(), true).debug(); 79 80 /* completionLine = new char[strlen(this->input->getText())+1]; 69 81 strcpy(completionLine, this->input->getText()); 70 82 … … 92 104 this->classComplete(commandBegin); 93 105 94 delete[] completionLine; 106 delete[] completionLine;*/ 95 107 } 96 108 -
trunk/src/lib/shell/shell_completion.h
r5182 r5183 24 24 bool autoComplete(ShellInput* input); 25 25 bool classComplete(const char* classBegin); 26 long classMatch(const char* input, unsigned int* length); 26 27 bool objectComplete(const char* objectBegin, long classID); 28 bool objectMatch(const char* objectBegin, long classID, unsigned int* length); 27 29 bool functionComplete(const char* functionBegin); 30 bool functionMatch(const char* functionBegin, long classID, unsigned int* length); 28 31 29 32 bool generalComplete(const tList<const char>* stringList, const char* begin, const char* displayAs = "%s", const char* addBack = NULL, const char* addFront = NULL); -
trunk/src/lib/util/substring.cc
r5150 r5183 52 52 { 53 53 const char* offset = string; 54 c har* end = strchr( string, splitter);54 const char* end = strchr( string, splitter); 55 55 while( end != NULL) 56 56 { … … 60 60 assert( strings[i] != NULL); 61 61 strncpy( strings[i], offset, l); 62 strings[i][l] = 0;62 strings[i][l] = '\0'; 63 63 i++; 64 64 end++; … … 74 74 else 75 75 { 76 this->strings[0] = new char[strlen(string) ];76 this->strings[0] = new char[strlen(string)+1]; 77 77 strcpy(this->strings[0], string); 78 } 79 } 80 81 82 /** 83 * Splits a String into a Substring removing all whiteSpaces 84 * @param string the String to Split 85 * @param whiteSpaces MUST BE __TRUE__ 86 * 87 */ 88 SubString::SubString(const char* string, bool whiteSpaces) 89 { 90 this->splittersCount = 0; 91 if (string == NULL || whiteSpaces == false) 92 { 93 this->strings = NULL; 94 return; 95 } 96 97 // chop the input to the beginning of something usefull 98 if (strlen(string) > 0) 99 string = string + strspn(string, " \t\n"); 100 101 // count the Splitters 102 bool lastWasWhiteSpace = false; 103 for(unsigned int i = 0; i < strlen(string); i++) 104 if( string[i] == ' ' || string[i] == '\t' || string[i] == '\n' ) 105 lastWasWhiteSpace = true; 106 else 107 { 108 if (lastWasWhiteSpace) 109 this->splittersCount ++; 110 lastWasWhiteSpace = false; 111 } 112 113 this->splittersCount += 1; 114 115 printf("splitterCount = %d\n", this->splittersCount); 116 117 this->strings = new char*[this->splittersCount]; 118 assert (strings != NULL); 119 120 int l = 0; 121 unsigned int i = 0; 122 if( this->splittersCount > 1) 123 { 124 const char* offset = string; 125 const char* end = offset + strcspn(offset, " \t\n"); 126 for (i = 0; i < this->splittersCount; i++) 127 { 128 assert( i < this->splittersCount); 129 l = end - offset; 130 this->strings[i] = new char[l + 1]; 131 assert( strings[i] != NULL); 132 strncpy( strings[i], offset, l); 133 strings[i][l] = '\0'; 134 end += strspn(end, " \t\n"); 135 offset = end; 136 printf("'%s'\n", end); 137 end = offset + strcspn(offset, " \t\n"); 138 } 139 } 140 else 141 { 142 unsigned int length = strcspn(string, " \t\n"); 143 this->strings[0] = new char[length+1]; 144 strncpy(this->strings[0], string, length); 145 this->strings[0][length] = '\0'; 78 146 } 79 147 } … … 86 154 if (this->strings) 87 155 { 88 for( int i = 0; i < this->splittersCount; i++)156 for(unsigned int i = 0; i < this->splittersCount; i++) 89 157 delete[] this->strings[i]; 90 158 delete[] this->strings; … … 105 173 } 106 174 107 108 109 175 /** 110 176 * Some nice debug information about this SubString … … 113 179 { 114 180 PRINT(0)("Substring-information::count=%d ::", this->splittersCount); 115 for (int i = 0; i < this->splittersCount; i++) 116 PRINT(0)("s%d:%s::", i, this->strings[i]); 181 if (this->strings != NULL) 182 for (unsigned int i = 0; i < this->splittersCount; i++) 183 PRINT(0)("s%d='%s'::", i, this->strings[i]); 117 184 PRINT(0)("\n"); 118 185 } -
trunk/src/lib/util/substring.h
r5150 r5183 12 12 public: 13 13 SubString(const char* string, char splitter = ','); 14 SubString(const char* string, bool whiteSpaces); 14 15 ~SubString(); 15 16 -
trunk/src/orxonox.cc
r5177 r5183 263 263 int Orxonox::initMisc() 264 264 { 265 ShellBuffer::getInstance(); 265 266 return 0; 266 267 }
Note: See TracChangeset
for help on using the changeset viewer.