Exemple #1
0
static void codifyLines(CodeOutputInterface &ol,FileDef *fd,const char *text,
                        uint &line,uint &column,const char *fontClass=0)
{
  if (fontClass) ol.startFontClass(fontClass);
  const char *p=text,*sp=p;
  char c;
  bool done=FALSE;
  while (!done)
  {
    sp=p;
    while ((c=*p++) && c!='\n') { column++; }
    if (c=='\n')
    {
      line++;
      int l = (int)(p-sp-1);
      column=l+1;
      char *tmp = (char*)malloc(l+1);
      memcpy(tmp,sp,l);
      tmp[l]='\0';
      ol.codify(tmp);
      free(tmp);
      if (fontClass) ol.endFontClass();
      ol.endCodeLine();
      ol.startCodeLine(TRUE);
      writeLineNumber(ol,fd,line);
      if (fontClass) ol.startFontClass(fontClass);
    }
    else
    {
      ol.codify(sp);
      done=TRUE;
    }
  }
  if (fontClass) ol.endFontClass();
}
static void codifyLines(CodeOutputInterface &ol, QSharedPointer<FileDef> fd, const QString &text,
                        uint &line, uint &column, const QString &fontClass)
{
   if (! fontClass.isEmpty()) {
      ol.startFontClass(fontClass);
   }

   const QChar *p   = text.constData();
   const QChar *sp  = p;
   const QChar *ptr = p;

   QChar c;

   bool done = false;

   while (! done) {
      sp = p;

      while ((c = *p++) != 0 && c != '\n') {
         column++;
      }

      if (c == '\n') {
         line++;
         int l = (int)(p - sp - 1);
         column = l + 1;

         char *tmp = (char *)malloc(l + 1);
         memcpy(tmp, sp, l);

         tmp[l] = '\0';
         ol.codify(tmp);
         free(tmp);

         if (! fontClass.isEmpty()) {
            ol.endFontClass();
         }

         ol.endCodeLine();
         ol.startCodeLine(true);
         writeLineNumber(ol, fd, line);

         if (! fontClass.isEmpty()) {
            ol.startFontClass(fontClass.toUtf8());
         }

      } else {
         ol.codify(text.mid(sp - ptr) );
         done = true;
      }
   }

  if (! fontClass.isEmpty()) {
      ol.endFontClass();
   }
}