Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5100 in orxonox.OLD for trunk/src/util/shell.cc


Ignore:
Timestamp:
Aug 22, 2005, 12:42:28 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: testing some AutoCompletion in the Shell.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/util/shell.cc

    r5099 r5100  
    2020#include "text_engine.h"
    2121#include "list.h"
     22#include "array.h"
    2223#include "graphics_engine.h"
    2324#include "event_handler.h"
    2425
     26#include "load_param.h"
    2527#include "debug.h"
    2628#include <stdarg.h>
     
    439441 * autocompletes the Shell's inputLine
    440442 * @returns true, if a result was found, false otherwise
     443 *
     444 * @todo implement it!!
    441445 */
    442446bool Shell::autoComplete()
    443447{
    444   PRINTF(3)("AutoCompletion not implemented yet\n");
     448  //PRINTF(3)("AutoCompletion not implemented yet\n");
     449
     450  char* completionLine = new char[strlen(inputLine)+1];
     451  strcpy(completionLine, this->inputLine);
     452
     453   char* commandBegin = strrchr(completionLine, ' ');
     454  if (commandBegin == NULL)
     455    commandBegin = completionLine;
     456  else
     457  {
     458    if(commandBegin >= completionLine + strlen(completionLine))
     459      commandBegin = completionLine + strlen(completionLine);
     460    else
     461      commandBegin++;
     462  }
     463
     464  printf("%s\n",commandBegin);
     465   Array<char*>* classArray = LoadClassDescription::searchClassWithShort(commandBegin);
     466   if (classArray->getCount() == 0)
     467   {
     468     delete[] completionLine;
     469     delete classArray;
     470     //PRINTF(0)("no completion found for %s\n", commandBegin);
     471     return false;
     472   }
     473
     474   for (unsigned int i = 0; i < classArray->getCount(); i++)
     475   {
     476     PRINTF(0)("%s\n", classArray->getEntry(i));
     477   }
     478   if (classArray->getCount() == 1)
     479   {
     480     this->removeCharacters(strlen(commandBegin));
     481     this->addCharacters(classArray->getEntry(0));
     482     this->addCharacter(' ');
     483   }
     484
     485   delete[] completionLine;
     486   delete classArray;
    445487}
    446488
Note: See TracChangeset for help on using the changeset viewer.