diff -ur kdebase-2.2.2.orig/konsole/include/TECommon.h kdebase-2.2.2/konsole/include/TECommon.h
--- kdebase-2.2.2.orig/konsole/include/TECommon.h	Mon Nov 26 23:21:10 2001
+++ kdebase-2.2.2/konsole/include/TECommon.h	Mon Nov 26 23:23:57 2001
@@ -68,12 +68,13 @@
             UINT8 _f = DEFAULT_FORE_COLOR,
             UINT8 _b = DEFAULT_BACK_COLOR,
             UINT8 _r = DEFAULT_RENDITION)
-       : c(_c), f(_f), b(_b), r(_r) {}
+       : c(_c), f(_f), b(_b), r(_r), right(false) {}
 public:
   UINT16 c; // character
   UINT8  f; // foreground color
   UINT8  b; // background color
   UINT8  r; // rendition
+  bool right;
 public:
   friend BOOL operator == (ca a, ca b);
   friend BOOL operator != (ca a, ca b);
@@ -81,12 +82,12 @@
 
 inline BOOL operator == (ca a, ca b)
 {
-  return a.c == b.c && a.f == b.f && a.b == b.b && a.r == b.r;
+  return a.c == b.c && a.f == b.f && a.b == b.b && a.r == b.r && a.right == b.right;
 }
 
 inline BOOL operator != (ca a, ca b)
 {
-  return a.c != b.c || a.f != b.f || a.b != b.b || a.r != b.r;
+  return a.c != b.c || a.f != b.f || a.b != b.b || a.r != b.r || a.right != b.right;
 }
 
 /*!
diff -ur kdebase-2.2.2.orig/konsole/include/TEWidget.h kdebase-2.2.2/konsole/include/TEWidget.h
--- kdebase-2.2.2.orig/konsole/include/TEWidget.h	Mon Nov 26 23:21:10 2001
+++ kdebase-2.2.2/konsole/include/TEWidget.h	Mon Nov 26 23:23:57 2001
@@ -54,6 +54,7 @@
     void emitSelection();
 
     void setImage(const ca* const newimg, int lines, int columns);
+    void setCursorPos(const int curx, const int cury);
 
     int  Lines()   { return lines;   }
     int  Columns() { return columns; }
diff -ur kdebase-2.2.2.orig/konsole/src/TEScreen.C kdebase-2.2.2/konsole/src/TEScreen.C
--- kdebase-2.2.2.orig/konsole/src/TEScreen.C	Mon Nov 26 23:21:10 2001
+++ kdebase-2.2.2/konsole/src/TEScreen.C	Mon Nov 26 23:23:57 2001
@@ -425,6 +425,7 @@
     newimg[y*new_columns+x].f = DEFAULT_FORE_COLOR;
     newimg[y*new_columns+x].b = DEFAULT_BACK_COLOR;
     newimg[y*new_columns+x].r = DEFAULT_RENDITION;
+    newimg[y*new_columns+x].right = false;
   }
   int cpy_lines   = QMIN(new_lines,  lines);
   int cpy_columns = QMIN(new_columns,columns);
@@ -432,10 +433,15 @@
   for (int y = 0; y < cpy_lines; y++)
   for (int x = 0; x < cpy_columns; x++)
   {
+#if 0
     newimg[y*new_columns+x].c = image[loc(x,y)].c;
     newimg[y*new_columns+x].f = image[loc(x,y)].f;
     newimg[y*new_columns+x].b = image[loc(x,y)].b;
     newimg[y*new_columns+x].r = image[loc(x,y)].r;
+    newimg[y*new_columns+x].right = image[loc(x,y)].right;
+#else
+    newimg[y*new_columns+x] = image[loc(x,y)];
+#endif
   }
   delete[] image;
   image = newimg;
@@ -570,8 +576,20 @@
 //  if (getMode(MODE_Cursor) && (cuY+(hist->getLines()-histCursor) < lines)) // cursor visible
 
   int loc_ = loc(cuX, cuY+hist->getLines()-histCursor);
-  if(getMode(MODE_Cursor) && loc_ < columns*lines)
-    reverseRendition(&merged[loc(cuX,cuY+(hist->getLines()-histCursor))]);
+  if(getMode(MODE_Cursor) && loc_ < columns*lines) {
+    int cy = cuY+(hist->getLines()-histCursor);
+    reverseRendition(&merged[loc(cuX,cy)]);
+    if (merged[loc(cuX,cy)].right) {
+      int i;
+      for (i = 1; merged[loc(cuX-i,cy)].right; i++) {
+	reverseRendition(&merged[loc(cuX-i,cy)]);
+      }
+      reverseRendition(&merged[loc(cuX-i,cy)]);
+    }
+    for (int i = 1; merged[loc(cuX+i,cy)].right; i++) {
+      reverseRendition(&merged[loc(cuX+i,cy)]);
+    }
+  }
   return merged;
 }
 
@@ -612,7 +630,10 @@
 void TEScreen::BackSpace()
 {
   cuX = QMAX(0,cuX-1);
-  if (BS_CLEARS) image[loc(cuX,cuY)].c = ' ';
+  if (BS_CLEARS) {
+    image[loc(cuX,cuY)].c = ' ';
+    image[loc(cuX,cuY)].right = false;
+  }
 }
 
 /*!
@@ -693,12 +714,16 @@
 
   checkSelection(i, i); // check if selection is still valid.
 
-  image[i].c = c;
-  image[i].f = ef_fg;
-  image[i].b = ef_bg;
-  image[i].r = ef_re;
-
-  cuX += 1;
+  int l = QString(QChar(c)).local8Bit().length();
+  for (int j = 0; j < l; j++) {
+      image[i+j].c = c;
+      image[i+j].f = ef_fg;
+      image[i+j].b = ef_bg;
+      image[i+j].r = ef_re;
+      image[i+j].right = (j != 0);
+      cuX += 1;
+      // if (j > 0) { fprintf(stderr, "right: %d, %d %d\n", cuX, cuY, c); }
+  }
 
 
 }
@@ -825,6 +850,7 @@
     image[i].f = ef_fg; //DEFAULT_FORE_COLOR; //FIXME: xterm and linux/ansi
     image[i].b = ef_bg; //DEFAULT_BACK_COLOR; //       many have different
     image[i].r = ef_re; //DEFAULT_RENDITION;  //       ideas here.
+    image[i].right = false;
   }
 }
 
@@ -1026,6 +1052,33 @@
   sel_begin = loc(x,y+histCursor) ;
   sel_BR = sel_begin;
   sel_TL = sel_begin;
+
+  int hist_BR = loc(0, hist->getLines());
+  if (sel_TL < hist_BR) {
+    int sx = sel_TL % columns;
+    int sy = sel_TL / columns;
+    while (sx < hist->getLineLen(sy) && hist->getCell(sy, sx).right) {
+	sel_TL--;
+	sx--;
+    }
+  } else {
+    while (image[sel_TL-hist_BR].right) {
+	sel_TL--;
+    }
+  }
+  if (sel_BR < hist_BR) {
+    int sx = sel_BR % columns;
+    int sy = sel_BR / columns;
+    while (sx+1 < hist->getLineLen(sy) && hist->getCell(sy, sx+1).right) {
+	sel_BR++;
+	sx++;
+    }
+  } else {
+    while (sel_BR-hist_BR+1 < loc(columns,lines) && image[sel_BR-hist_BR+1].right) {
+	sel_BR++;
+    }
+  }
+  // kdDebug() << "setSelBeginXY(): sel_TL = " << sel_TL << ", sel_BR = " << sel_BR << ", sel_begin = " << sel_begin << endl;
 }
 
 void TEScreen::setSelExtentXY(const int x, const int y)
@@ -1046,6 +1099,34 @@
     sel_TL = sel_begin;
     sel_BR = l;
   }
+
+  int hist_BR = loc(0, hist->getLines());
+  // kdDebug() << "setSelExtentXY(): hist_BR = " << hist_BR << endl;
+  if (sel_TL < hist_BR) {
+    int sx = sel_TL % columns;
+    int sy = sel_TL / columns;
+    while (sx < hist->getLineLen(sy) && hist->getCell(sy, sx).right) {
+	sel_TL--;
+	sx--;
+    }
+  } else {
+    while (image[sel_TL-hist_BR].right) {
+	sel_TL--;
+    }
+  }
+  if (sel_BR < hist_BR) {
+    int sx = sel_BR % columns;
+    int sy = sel_BR / columns;
+    while (sx+1 < hist->getLineLen(sy) && hist->getCell(sy, sx+1).right) {
+	sel_BR++;
+	sx++;
+    }
+  } else {
+    while (sel_BR-hist_BR+1 < loc(columns,lines) && image[sel_BR-hist_BR+1].right) {
+	sel_BR++;
+    }
+  }
+  // kdDebug() << "setSelExtentXY(): sel_TL = " << sel_TL << ", sel_BR = " << sel_BR << ", sel_begin = " << sel_begin << endl;
 }
 
 QString TEScreen::getSelText(const BOOL preserve_line_breaks)
@@ -1084,7 +1165,10 @@
 	  
 	  while (hX < eol)
 	    {
-	      m[d++] = hist->getCell(hY, hX++).c;
+	      if (!hist->getCell(hY, hX).right) {
+		  m[d++] = hist->getCell(hY, hX).c;
+	      }
+	      hX++;
 	      s++;
 	    }
 
@@ -1155,6 +1239,7 @@
 	while (s <= eol)
 	  {
 	    m[d++] = image[s++ - hist_BR].c;
+	    if (image[s-1 - hist_BR].right) d--;
 	  }
 
 	if (eol < sel_BR)
diff -ur kdebase-2.2.2.orig/konsole/src/TEWidget.C kdebase-2.2.2/konsole/src/TEWidget.C
--- kdebase-2.2.2.orig/konsole/src/TEWidget.C	Mon Nov 26 23:21:10 2001
+++ kdebase-2.2.2/konsole/src/TEWidget.C	Mon Nov 26 23:23:57 2001
@@ -175,6 +175,7 @@
 
 static QChar vt100extended(QChar c)
 {
+  QString s(c);
   switch (c.unicode())
   {
     case 0x25c6 : return  1;
@@ -221,7 +222,14 @@
 {
   QFontMetrics fm(font());
   font_h = fm.height();
-  font_w = fm.maxWidth();
+  // font_w = fm.maxWidth();
+  font_w = 0;
+  int fw;
+  for (int i = 0; i < 128; i++) {
+    if (isprint(i) && font_w < (fw = fm.width(i))) {
+       font_w = fw;
+    }
+  }
   font_a = fm.ascent();
 //printf("font_h: %d\n",font_h);
 //printf("font_w: %d\n",font_w);
@@ -229,9 +237,12 @@
 //printf("charset: %s\n",QFont::encodingName(font().charSet()).ascii());
 //printf("rawname: %s\n",font().rawName().ascii());
     
-  fontMap = strcmp(QFont::encodingName(font().charSet()).ascii(),"iso10646")
-          ? vt100extended
-          : identicalMap;
+  QString encoding = QFont::encodingName(font().charSet());
+  if (encoding == "iso10646" || encoding == "Set_Ja") {
+      fontMap = identicalMap;
+  } else {
+      fontMap = vt100extended;
+  }
   propagateSize();
   update();
 }
@@ -363,6 +374,19 @@
     The size of the new image may or may not match the size of the widget.
 */
 
+void TEWidget::setCursorPos(const int curx, const int cury)
+{
+    QPoint tL  = contentsRect().topLeft();
+    int    tLx = tL.x();
+    int    tLy = tL.y();
+
+    int xpos, ypos;
+    ypos = bY + tLy + font_h*(cury-1) + font_a;
+    xpos = blX + tLx + font_w*curx;
+    setMicroFocusHint(xpos, ypos, 0, font_h);
+    // fprintf(stderr, "x/y = %d/%d\txpos/ypos = %d/%d\n", curx, cury, xpos, ypos);
+}
+
 void TEWidget::setImage(const ca* const newimg, int lines, int columns)
 { int y,x,len;
   const QPixmap* pm = backgroundPixmap();
@@ -400,14 +424,19 @@
         if (ext[x].f != cf) cf = ext[x].f;
         int lln = cols - x;
         disstrU[0] = fontMap(ext[x+0].c);
+	int rlen = 0;
         for (len = 1; len < lln; len++)
         {
           if (ext[x+len].f != cf || ext[x+len].b != cb || ext[x+len].r != cr ||
               ext[x+len] == lcl[x+len] )
             break;
-          disstrU[len] = fontMap(ext[x+len].c);
+	  if (ext[x+len].right) {
+	    rlen++;
+	  } else {
+            disstrU[len - rlen] = fontMap(ext[x+len].c);
+	  }
         }
-        QString unistr(disstrU,len);
+        QString unistr(disstrU,len-rlen);
         drawAttrStr(paint,
                     QRect(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h),
                     unistr, ext[x], pm != NULL, true);
@@ -472,27 +501,37 @@
   // BL: I have no idea why we need this, and it breaks the refresh.
 
   QChar *disstrU = new QChar[columns];
-  for (int y = luy; y <= rly; y++)
-  for (int x = lux; x <= rlx; x++)
-  {
-    int len = 1;
-    disstrU[0] = fontMap(image[loc(x,y)].c);
-    int cf = image[loc(x,y)].f;
-    int cb = image[loc(x,y)].b;
-    int cr = image[loc(x,y)].r;
-    while (x+len <= rlx &&
-           image[loc(x+len,y)].f == cf &&
-           image[loc(x+len,y)].b == cb &&
-           image[loc(x+len,y)].r == cr )
-    {
-      disstrU[len] = fontMap(image[loc(x+len,y)].c);
-      len += 1;
-    }
-    QString unistr(disstrU,len);
-    drawAttrStr(paint,
-                QRect(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h),
-                unistr, image[loc(x,y)], pm != NULL, false);
-    x += len - 1;
+  for (int y = luy; y <= rly; y++) {
+      int f = 0;
+      while (image[loc(lux - f, y)].right) {
+	f++;
+      }
+      for (int x = lux - f; x <= rlx; x++)
+      {
+	int len = 1;
+	int rlen = 0;
+	disstrU[0] = fontMap(image[loc(x,y)].c);
+	int cf = image[loc(x,y)].f;
+	int cb = image[loc(x,y)].b;
+	int cr = image[loc(x,y)].r;
+	while (x+len <= rlx &&
+	       image[loc(x+len,y)].f == cf &&
+	       image[loc(x+len,y)].b == cb &&
+	       image[loc(x+len,y)].r == cr )
+	{
+	  if (image[loc(x+len,y)].right) {
+	    rlen++;
+	  } else {
+	    disstrU[len - rlen] = fontMap(image[loc(x+len,y)].c);
+	  }
+	  len += 1;
+	}
+	QString unistr(disstrU,len-rlen);
+	drawAttrStr(paint,
+		    QRect(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h),
+		    unistr, image[loc(x,y)], pm != NULL, false);
+	x += len - 1;
+      }
   }
   delete [] disstrU;
   drawFrame( &paint );
@@ -1068,6 +1107,7 @@
     image[loc(x,y)].f = 0xff; //DEFAULT_FORE_COLOR;
     image[loc(x,y)].b = 0xff; //DEFAULT_BACK_COLOR;
     image[loc(x,y)].r = 0xff; //DEFAULT_RENDITION;
+    image[loc(x,y)].right = false; //DEFAULT_IS_LEFT;
   }
 }
 
diff -ur kdebase-2.2.2.orig/konsole/src/TEmulation.C kdebase-2.2.2/konsole/src/TEmulation.C
--- kdebase-2.2.2.orig/konsole/src/TEmulation.C	Mon Nov 26 23:21:10 2001
+++ kdebase-2.2.2/konsole/src/TEmulation.C	Mon Nov 26 23:23:57 2001
@@ -316,6 +316,7 @@
     gui->setImage(image,
                   scr->getLines(),
                   scr->getColumns());     // actual refresh
+    gui->setCursorPos(scr->getCursorX(), scr->getCursorY());
     free(image);
     //FIXME: check that we do not trigger other draw event here.
     //kdDebug(1211)<<"TEmulation::showBulk(): setScroll()"<<endl;
diff -ur kdebase-2.2.2.orig/konsole/src/konsole.C kdebase-2.2.2/konsole/src/konsole.C
--- kdebase-2.2.2.orig/konsole/src/konsole.C	Mon Nov 26 23:21:10 2001
+++ kdebase-2.2.2/konsole/src/konsole.C	Mon Nov 26 23:33:24 2001
@@ -153,7 +153,7 @@
 template class QIntDict<KSimpleConfig>;
 template class QPtrDict<KRadioAction>;
 
-
+#if 0
 const char *fonts[] = {
  "6x13",  // FIXME: "fixed" used in favor of this
  "5x7",   // tiny font, never used
@@ -164,7 +164,22 @@
  "-misc-console-medium-r-normal--16-160-72-72-c-160-iso10646-1", // "Linux"
  "-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1",    // "Unicode"
  };
-#define TOPFONT (sizeof(fonts)/sizeof(char*))
+#else
+const struct {
+    const char *name;
+    int size;
+} fonts[] = {
+    {"fixed", 14}, // default font
+    {"fixed", 10}, // tiny font
+    {"fixed", 12}, // small font
+    {"fixed", 16}, // medium font (not default)
+    {"fixed", 20}, // large font
+    {"fixed", 24}, // huge font
+    {"-misc-console-medium-r-normal--16-160-72-72-c-160-iso10646-1", 0}, // "Linux"
+    {"-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1", 0}, // "Unicode"
+};
+#endif
+#define TOPFONT ((sizeof(fonts)/sizeof(fonts[0])))
 #define DEFAULTFONT TOPFONT
 
 #define DEFAULT_HISTORY_SIZE 1000
@@ -248,7 +263,7 @@
   colors->checkSchemas();
 
   KeyTrans::loadAll();
-  //KONSOLEDEBUG<<"Konsole ctor() after KeyTrans::loadAll() "<<time.elapsed()<<" msecs elapsed"<<endl; 
+  //KONSOLEDEBUG<<"Konsole ctor() after KeyTrans::loadAll() "<<time.elapsed()<<" msecs elapsed"<<endl;
 
   // read and apply default values ///////////////////////////////////////////
   resize(321, 321); // Dummy.
@@ -289,7 +304,7 @@
   //KONSOLEDEBUG<<"Konsole ctor(): runSession()"<<endl;
   te->currentSession = se;
   se->setConnect(TRUE);
-  
+
   updateTitle();
 
   //QTimer::singleShot(1,this,SLOT(allowPrevNext())); // hack, hack, hack
@@ -458,7 +473,7 @@
    KAction *historyType = new KAction(i18n("History..."), "history", 0, this,
                                       SLOT(slotHistoryType()), this);
    historyType->plug(m_options);
-   
+
    m_options->insertSeparator();
 //   m_options->insertItem( SmallIconSet( "charset" ), i18n( "&Codec" ), m_codec);
    m_options->insertItem( SmallIconSet( "key_bindings" ), i18n( "&Keyboard" ), m_keytab );
@@ -600,12 +615,12 @@
             return false;
         }
     }
-    // WABA: Don't close if there are any sessions left. 
+    // WABA: Don't close if there are any sessions left.
     // Tell them to go away.
     if (!skip_exit_query && sessions.count())
     {
         sessions.first();
-        while(sessions.current()) 
+        while(sessions.current())
         {
             sessions.current()->kill(SIGHUP);
             sessions.next();
@@ -706,13 +721,13 @@
   QString key;
   config->setDesktopGroup();
 
-  if (config != KGlobal::config()) 
+  if (config != KGlobal::config())
   {
      // called by the session manager
      skip_exit_query = true;
      config->writeEntry("numSes",sessions.count());
      sessions.first();
-     while(counter < sessions.count()) 
+     while(counter < sessions.count())
      {
         key = QString("Title%1").arg(counter);
         config->writeEntry(key, sessions.current()->Title());
@@ -772,7 +787,7 @@
    b_warnQuit=config->readBoolEntry( "WarnQuit", TRUE );
    n_defaultKeytab=config->readNumEntry("keytab",0); // act. the keytab for this session
    b_fullscreen = config->readBoolEntry("Fullscreen",FALSE);
-   n_defaultFont = n_font = QMIN(config->readUnsignedNumEntry("font",3),TOPFONT);
+   n_defaultFont = n_font = QMIN(config->readUnsignedNumEntry("font",0),TOPFONT);
    n_scroll   = QMIN(config->readUnsignedNumEntry("scrollbar",TEWidget::SCRRIGHT),2);
    s_word_seps= config->readEntry("wordseps",":@-./_~");
    b_framevis = config->readBoolEntry("has frame",TRUE);
@@ -781,16 +796,14 @@
 
    // Options that should be applied to all sessions /////////////
    // (1) set menu items and Konsole members
-   QFont tmpFont("fixed");
+   QFont tmpFont(fonts[0].name, fonts[0].size);
    defaultFont = config->readFontEntry("defaultfont", &tmpFont);
-   setFont(QMIN(config->readUnsignedNumEntry("font",3),TOPFONT));
+   setFont(QMIN(config->readUnsignedNumEntry("font",0),TOPFONT));
 
    //set the schema
    s_kconfigSchema=config->readEntry("schema", "");
    ColorSchema* sch = colors->find(schema.isEmpty() ? s_kconfigSchema : schema);
-   if (!sch)
-   {
-      kdWarning() << "Could not find schema named " <<s_kconfigSchema<< endl;
+   if (!sch) { kdWarning() << "Could not find schema named " <<s_kconfigSchema<< endl;
       sch=(ColorSchema*)colors->at(0);  //the default one
    }
    if (sch->hasSchemaFileChanged()) sch->rereadSchemaFile();
@@ -831,7 +844,7 @@
    };
 
 //   setFullScreen(b_fullscreen);
-   
+
 }
 
 void Konsole::applySettingsToGUI()
@@ -989,16 +1002,17 @@
   if (fontno == DEFAULTFONT)
     f = defaultFont;
   else
-  if (fonts[fontno][0] == '-')
-    f.setRawName( fonts[fontno] );
+  if (fonts[fontno].size == 0)
+    f.setRawName( fonts[fontno].name );
   else
   {
-    f.setFamily(fonts[fontno]);
-    f.setRawMode( TRUE );
+    f.setFamily(fonts[fontno].name);
+    f.setPointSize(fonts[fontno].size);
+    //f.setRawMode( TRUE );
   }
   if ( !f.exactMatch() && fontno != DEFAULTFONT)
   {
-    QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno]);
+    QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno].name);
     KMessageBox::error(this,  msg);
     return;
   }
@@ -1144,7 +1158,7 @@
 
 void Konsole::initFullScreen()
 {
-  //This function is to be called from main.C to initialize the state of the Konsole (fullscreen or not).  It doesn't appear to work 
+  //This function is to be called from main.C to initialize the state of the Konsole (fullscreen or not).  It doesn't appear to work
   //from inside the Konsole constructor
   if (b_fullscreen) {
    setColLin(0,0);
@@ -1171,7 +1185,7 @@
 //    KONSOLEDEBUG << "On and b_Fullscreen both equal " << b_fullscreen << "." << endl;
 //    }
     if (on) {
-      showFullScreen(); 
+      showFullScreen();
       b_fullscreen = on;
       }
     else {
@@ -1321,7 +1335,7 @@
 {
   QObject::connect( se->getEmulation(),SIGNAL(prevSession()), this,SLOT(prevSession()) );
   QObject::connect( se->getEmulation(),SIGNAL(nextSession()), this,SLOT(nextSession()) );
-  QObject::connect( se->getEmulation(),SIGNAL(newSession()), this,SLOT(newSession()) 
+  QObject::connect( se->getEmulation(),SIGNAL(newSession()), this,SLOT(newSession())
 );
 }
 
@@ -1337,7 +1351,7 @@
 
   while( it.current()) {
      KSimpleConfig *co = it.current();
-     if ( co && co->readEntry("Exec").isEmpty() ) 
+     if ( co && co->readEntry("Exec").isEmpty() )
         return co;
      ++it;
   }
@@ -1347,13 +1361,13 @@
 void Konsole::newSession(const QString &pgm, const QStrList &args, const QString &term)
 {
   KSimpleConfig *co = defaultSession();
-  newSession(co, pgm, args, term);  
+  newSession(co, pgm, args, term);
 }
 
 void Konsole::newSession()
 {
   KSimpleConfig *co = defaultSession();
-  newSession(co, QString::null, QStrList());  
+  newSession(co, QString::null, QStrList());
 }
 
 void Konsole::newSession(int i)
@@ -1365,7 +1379,7 @@
 TESession *Konsole::newSession(KSimpleConfig *co, QString program, const QStrList &args, const QString &_term)
 {
   QString emu = "xterm";
-  QString key; 
+  QString key;
   QString sch = s_kconfigSchema;
   QString txt = s_title;
   unsigned int     fno = n_defaultFont;
@@ -1384,7 +1398,7 @@
   if (!_term.isEmpty())
      emu = _term;
 
-  if (!program.isEmpty()) 
+  if (!program.isEmpty())
   {
      cmdArgs = args;
   }
@@ -1408,7 +1422,7 @@
   ColorSchema* schema = sch.isEmpty()
                       ? colors->find(s_schema)
                       : colors->find(sch);
-  if (!schema) 
+  if (!schema)
       schema=(ColorSchema*)colors->at(0);  //the default one
   int schmno = schema->numb();
 
@@ -1711,7 +1725,7 @@
                 parent)
 {
   QFrame *mainFrame = plainPage();
-  
+
   QHBoxLayout *hb = new QHBoxLayout(mainFrame);
 
   m_btnEnable    = new QCheckBox(i18n("Enable"), mainFrame);
@@ -1768,7 +1782,7 @@
 {
 //  KONSOLEDEBUG << "Konsole::slotHistoryType()\n";
   if (!se) return;
-  
+
   HistoryTypeDialog dlg(se->history(), m_histSize, this);
   if (dlg.exec()) {
 
@@ -1783,7 +1797,7 @@
          se->setHistory(HistoryTypeFile());
          m_histSize = 0;
          b_histEnabled = true;
-      
+
       }
 
     } else {
@@ -1842,7 +1856,7 @@
    //Get window info
    NETWinInfo info( qt_xdisplay(), winId(), qt_xrootwin(), NET::WMDesktop );
    bool bNeedUpdate = false;
- 
+
    if( info.desktop()==NETWinInfo::OnAllDesktops ) {
       //This is a sticky window so it will always need updating
       bNeedUpdate = true;
@@ -1857,7 +1871,7 @@
 
    //Check to see if we are transparent too
    ColorSchema* s = colors->find(curr_schema);
-   if (s==0) 
+   if (s==0)
       return;
 
    //This window is transparent, update the root pixmap
