SOURCES: dfbiterm-new.patch (NEW) - use iterm instead of xterm as ...

witekfl witekfl at pld-linux.org
Tue Feb 14 18:08:56 CET 2006


Author: witekfl                      Date: Tue Feb 14 17:08:56 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- use iterm instead of xterm as TERM

---- Files affected:
SOURCES:
   dfbiterm-new.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/dfbiterm-new.patch
diff -u /dev/null SOURCES/dfbiterm-new.patch:1.1
--- /dev/null	Tue Feb 14 18:08:56 2006
+++ SOURCES/dfbiterm-new.patch	Tue Feb 14 18:08:51 2006
@@ -0,0 +1,219 @@
+diff -x '*~' -Nru dfbiterm-0.1/src/keyboard.c dfbiterm-0.1.new/src/keyboard.c
+--- dfbiterm-0.1/src/keyboard.c	2006-02-11 18:32:14.000000000 +0100
++++ dfbiterm-0.1.new/src/keyboard.c	2006-02-14 15:30:42.849133000 +0100
+@@ -5,8 +5,8 @@
+ #include "dfbiterm.h"
+ #include <directfb.h>
+ 
+-/* remapping table for function keys 5-12 */
+-static const unsigned char f5_f12_remap[] = {15,17,18,19,20,21,23,24};
++/* remapping table for function keys 1-12 */
++static const unsigned char f1_f12_remap[] = {11,12,13,14,15,17,18,19,20,21,23,24};
+ 
+ void
+ term_handle_key(DFBWindowEvent *evt)
+@@ -46,11 +46,15 @@
+ 			case '-':
+ 				write(pIterm->fd, "\037", 1);
+ 				break;
++			case '\r':
++				write(pIterm->fd, "\033\r", 2);
++				break;
+ 			default:
+ 				write(pIterm->fd, &c, 1);
+ 				break;
+ 			}
+-		}
++		} else if ((evt->modifiers & DIMM_ALT) && evt->key_symbol == '\r')
++			write(pIterm->fd, "\033\r", 2);
+ 		else
+ 			write(pIterm->fd, &c, 1);
+ 	}
+@@ -94,10 +98,10 @@
+ 			}
+ 			break;
+ 		case DIKS_HOME:
+-			write(pIterm->fd, "\033OH", 3);
++			write(pIterm->fd, "\033[1~", 4);
+ 			break;
+ 		case DIKS_END:
+-			write(pIterm->fd, "\033OF", 3);
++			write(pIterm->fd, "\033[4~", 4);
+ 			break;
+ 		case DIKS_PAGE_UP:
+ 			if (evt->modifiers & DIMM_SHIFT) {
+@@ -113,23 +117,11 @@
+ 			} else
+ 				write(pIterm->fd, "\033[6~", 4);
+ 			break;
+-		case DIKS_F1:
+-			write(pIterm->fd, "\033OP", 3);
+-			break;
+-		case DIKS_F2:
+-			write(pIterm->fd, "\033OQ", 3);
+-			break;
+-		case DIKS_F3:
+-			write(pIterm->fd, "\033OR", 3);
+-			break;
+-		case DIKS_F4:
+-			write(pIterm->fd, "\033OS", 3);
+-			break;
+-		case DIKS_F5 ... DIKS_F12:
++		case DIKS_F1 ... DIKS_F12:
+ 			{
+ 				char buf[6];
+ 
+-				sprintf (buf, "\033[%d~", f5_f12_remap[evt->key_symbol - DIKS_F5]);
++				sprintf (buf, "\033[%d~", f1_f12_remap[evt->key_symbol - DIKS_F1]);
+ 				write(pIterm->fd, buf, strlen(buf));
+ 			}
+ 			break;
+diff -x '*~' -Nru dfbiterm-0.1/src/vt.c dfbiterm-0.1.new/src/vt.c
+--- dfbiterm-0.1/src/vt.c	2006-02-11 18:31:53.000000000 +0100
++++ dfbiterm-0.1.new/src/vt.c	2006-02-14 14:35:19.035163250 +0100
+@@ -12,7 +12,7 @@
+ 	char *shell;
+ 	char *program[] = { defaultShell, NULL };
+ 
+-	putenv("TERM=xterm");
++	putenv("TERM=iterm");
+ 	shell = getenv ("SHELL");
+ 	if (shell != NULL && shell[0] != '\0')
+ 		program[0] = shell;
+diff -x '*~' -Nru dfbiterm-0.1/src/VTScreenView.c dfbiterm-0.1.new/src/VTScreenView.c
+--- dfbiterm-0.1/src/VTScreenView.c	2006-02-11 18:25:02.000000000 +0100
++++ dfbiterm-0.1.new/src/VTScreenView.c	2006-02-14 14:34:27.647951750 +0100
+@@ -10,18 +10,28 @@
+ VTScreenView_draw_text(VTScreenView * view, int col, int row,
+ 			unsigned char *mbstring, int length, int width)
+ {
+-	int x, y, h, w, i;
++	int x, y, h, w, i, xs, foreground, background;
+ 
+ 	if (pIterm->lock) return;
+ 
+-	x = col * pIterm->cell_width;
++	xs = x = col * pIterm->cell_width;
+ 	y = row * pIterm->cell_height;
+ 	w = pIterm->cell_width * width;
+ 	h = pIterm->cell_height;
+ 
+-	pIterm->surface->SetColor(pIterm->surface, red[pIterm->background], green[pIterm->background], blue[pIterm->background], 0xff);
++	foreground = pIterm->foreground;
++	background = pIterm->background;
++
++	if (pIterm->indexed)
++		pIterm->surface->SetColorIndex(pIterm->surface, background);
++	else
++		pIterm->surface->SetColor(pIterm->surface, red[background], green[background], blue[background], 0xff);
+ 	pIterm->surface->FillRectangle(pIterm->surface, x, y, w, h);
+-	pIterm->surface->SetColor(pIterm->surface, red[pIterm->foreground], green[pIterm->foreground], blue[pIterm->foreground], 0xff);
++
++	if (pIterm->indexed)
++		pIterm->surface->SetColorIndex(pIterm->surface, foreground);
++	else
++		pIterm->surface->SetColor(pIterm->surface, red[foreground], green[foreground], blue[foreground], 0xff);
+ 	if (pIterm->charset == SPECIAL_GRAPHICS) {
+ 		for (i = 0; i < length; i++) {
+ 			if (0x5E <mbstring[i] && mbstring[i] < 0x7F) {
+@@ -38,6 +48,7 @@
+ 		pIterm->surface->DrawGlyph(pIterm->surface, indeks, x, y, DSTF_TOPLEFT);
+ 		x += pIterm->cell_width;
+ 	}
++	if (pIterm->underline) pIterm->surface->DrawLine(pIterm->surface, xs, y + pIterm->cell_height - 1, x - 1, y + pIterm->cell_height - 1);
+ }
+ 
+ static void
+@@ -52,68 +63,20 @@
+ 	w = (e_col - s_col) * pIterm->cell_width;
+ 	h = (e_row - s_row) * pIterm->cell_height;
+ 
+-	pIterm->surface->SetColor(pIterm->surface, red[pIterm->background], green[pIterm->background], blue[pIterm->background], 0xff);
++	if (pIterm->indexed)
++		pIterm->surface->SetColorIndex(pIterm->surface, 0);
++	else
++		pIterm->surface->SetColor(pIterm->surface, red[0], green[0], blue[0], 0xff);
+ 	pIterm->surface->FillRectangle(pIterm->surface, x, y, w, h);
+ }
+ 
+ static void
+-VTScreenView_draw_text8(VTScreenView * view, int col, int row,
+-			unsigned char *mbstring, int length, int width)
+-{
+-	int x, y, w, i, h;
+-
+-	if (pIterm->lock) return;
+-
+-	x = col * pIterm->cell_width;
+-	y = row * pIterm->cell_height;
+-	w = pIterm->cell_width * width;
+-	h = pIterm->cell_height;
+-
+-	if (pIterm->charset == SPECIAL_GRAPHICS) {
+-		for (i = 0; i < length; i++) {
+-			if (0x5E <mbstring[i] && mbstring[i] < 0x7F) {
+-				mbstring[i] = ((mbstring[i]==0x5F)? 0x7F : mbstring[i]-0x5F);
+-			}
+-		}
+-	}
+-	pIterm->surface->SetColorIndex(pIterm->surface, pIterm->background);
+-	pIterm->surface->FillRectangle(pIterm->surface, x, y, w, h);
+-	pIterm->surface->SetColorIndex(pIterm->surface, pIterm->foreground);
+-	for (i = 0; i < length; i++) {
+-		unsigned int indeks = mbstring[i];
+-
+-		if (indeks > 0x7f) {
+-			indeks = btowc(indeks);
+-		} 
+-		pIterm->surface->DrawGlyph(pIterm->surface, indeks, x, y, DSTF_TOPLEFT);
+-		x += pIterm->cell_width;
+-	}
+-}
+-
+-static void
+-VTScreenView_clear_rect8(VTScreenView * view, int s_col, int s_row,
+-			 int e_col, int e_row)
+-{
+-	int x, y, w, h;
+-	if (pIterm->lock) return;
+-
+-	x = s_col * pIterm->cell_width;
+-	y = s_row * pIterm->cell_height;
+-	w = (e_col - s_col) * pIterm->cell_width;
+-	h = (e_row - s_row) * pIterm->cell_height;
+-
+-	pIterm->surface->SetColorIndex(pIterm->surface, pIterm->background);
+-	pIterm->surface->FillRectangle(pIterm->surface, x, y, w, h); 
+-}
+-
+-static void
+ VTScreenView_set_rendition (VTScreenView * view, int bold, int blink,
+ 			    int inverse, int underline,
+ 			    int foreground, int background, char charset)
+ {
+-/*   pIterm->fb->set_rendition (bold, blink, inverse, underline, foreground,
+-			     background, charset); */
+ 	if (pIterm->lock) return;
++
+ 	if (!background && !foreground) {
+ 		foreground = 7;
+ 	}
+@@ -171,14 +134,10 @@
+ 	}
+ 
+ 	VTScreenView_init(view);
+-	if (pIterm->indexed) {
+-		set_palette();
+-		view->draw_text = VTScreenView_draw_text8;
+-		view->clear_rect = VTScreenView_clear_rect8;
+-	} else {
+-		view->draw_text = VTScreenView_draw_text;
+-		view->clear_rect = VTScreenView_clear_rect;
+-	}
++	if (pIterm->indexed) set_palette();
++	pIterm->foreground = 7;
++	view->draw_text = VTScreenView_draw_text;
++	view->clear_rect = VTScreenView_clear_rect;
+ 	view->set_rendition = VTScreenView_set_rendition;
+ 	view->scroll_view = VTScreenView_scroll_view;
+ 	return view;
================================================================


More information about the pld-cvs-commit mailing list