[Scummvm-cvs-logs] CVS: scummvm/gui console.cpp,1.9,1.10 console.h,1.8,1.9

Oliver Kiehl olki at users.sourceforge.net
Sat Dec 14 14:26:01 CET 2002


Update of /cvsroot/scummvm/scummvm/gui
In directory sc8-pr-cvs1:/tmp/cvs-serv30477

Modified Files:
	console.cpp console.h 
Log Message:
fixed ctrl-w and added ctrl-d and <delete>


Index: console.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/console.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- console.cpp	14 Dec 2002 22:18:00 -0000	1.9
+++ console.cpp	14 Dec 2002 22:25:08 -0000	1.10
@@ -163,6 +163,10 @@
 			scrollToCurrent();
 			draw();	// FIXME - not nice to redraw the full console just for one char!
 			break;
+		case 127:
+			killChar();
+			draw();
+			break;
 /*
 		case 256+24:	// pageup
 			_selectedItem -= _entriesPerPage - 1;
@@ -231,6 +235,10 @@
 			_currentPos = _promptStartPos;
 			draw();
 			break;
+		case 'd':
+			killChar();
+			draw();
+			break;
 		case 'e':
 			_currentPos = _promptEndPos;
 			draw();
@@ -246,6 +254,14 @@
 	}
 }
 
+void ConsoleDialog::killChar()
+{
+	for (int i = _currentPos; i < _promptEndPos; i++)
+		_buffer[i % kBufferSize] = _buffer[(i+1) % kBufferSize];
+	_buffer[_promptEndPos % kBufferSize] = ' ';
+	_promptEndPos--;
+}
+
 void ConsoleDialog::killLine()
 {
 	for (int i = _currentPos; i < _promptEndPos; i++)
@@ -256,14 +272,20 @@
 void ConsoleDialog::killLastWord()
 {
 	int pos;
+	int cnt = 0;
 	while (_currentPos > _promptStartPos) {
 		_currentPos--;
 		pos = getBufferPos();
 		if (_buffer[pos] != ' ')
-			_buffer[pos] = ' ';
+			cnt++;
 		else
 			break;
 	}
+
+	for (int i = _currentPos; i < _promptEndPos; i++)
+		_buffer[i % kBufferSize] = _buffer[(i+cnt+1) % kBufferSize];
+	_buffer[_promptEndPos % kBufferSize] = ' ';
+	_promptEndPos--;
 }
 
 void ConsoleDialog::nextLine()

Index: console.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/console.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- console.h	14 Dec 2002 22:10:37 -0000	1.8
+++ console.h	14 Dec 2002 22:25:09 -0000	1.9
@@ -82,6 +82,7 @@
 
 	// Line editing
 	void specialKeys(int keycode);
+	void killChar();
 	void killLine();
 	void killLastWord();
 };





More information about the Scummvm-git-logs mailing list