mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Add profiling. Also some trivial optimisations to skip memcpying.
This commit is contained in:
		
							
								
								
									
										10
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| # $Id: Makefile,v 1.9 2007-10-01 14:53:29 nicm Exp $ | ||||
| # $Id: Makefile,v 1.10 2007-10-03 00:13:46 nicm Exp $ | ||||
|  | ||||
| .SUFFIXES: .c .o .y .h | ||||
| .PHONY: clean | ||||
| @@ -25,6 +25,11 @@ YACC= yacc -d | ||||
| CC= cc | ||||
| INCDIRS+= -I. -I- -I/usr/local/include | ||||
| CFLAGS+= -DBUILD="\"$(VERSION) ($(DATE))\"" -DMETA="'${META}'" | ||||
| .ifdef PROFILE | ||||
| # Don't use ccache | ||||
| CC= /usr/bin/gcc | ||||
| CFLAGS+= -pg -DPROFILE -O0 | ||||
| .endif | ||||
| .ifdef DEBUG | ||||
| CFLAGS+= -g -ggdb -DDEBUG | ||||
| LDFLAGS+= -Wl,-E | ||||
| @@ -40,6 +45,9 @@ INSTALLBIN= install -g bin -o root -m 555 | ||||
| INSTALLMAN= install -g bin -o root -m 444 | ||||
|  | ||||
| LDFLAGS+= -L/usr/local/lib | ||||
| .ifdef PROFILE | ||||
| LDFLAGS+= -pg | ||||
| .endif | ||||
| LIBS+= -lutil -lncurses | ||||
|  | ||||
| OBJS= ${SRCS:S/.c/.o/:S/.y/.o/} | ||||
|   | ||||
							
								
								
									
										8
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								TODO
									
									
									
									
									
								
							| @@ -10,7 +10,6 @@ | ||||
| - scrollback | ||||
| - server doesn't handle SIGTERM anymore... | ||||
| - copy/paste | ||||
| - cleanup/redesign IPC | ||||
| - the whole input/screen/local thing sucks a bit, reorganise/redesign it | ||||
| - line mode/char-at-a-time mode a la telnet? | ||||
| - some of the uses of buffers really sucks. buffer_reverse_add/remove, | ||||
| @@ -30,6 +29,10 @@ | ||||
| 	or use queues/trees and avoid NULLs? | ||||
| - client could pass tty fd up to server and then do nothing. what problems  | ||||
|   would this cause? | ||||
| - cleanup/redesign IPC | ||||
| 	IPC is arse-about-face: too much overhead. 8-byte header for each | ||||
| 	packet... hrm. already scanning output for \e, could add an extra | ||||
| 	byte to it for message | ||||
|  | ||||
| -- For 0.1 -------------------------------------------------------------------- | ||||
| - man page | ||||
| @@ -43,6 +46,9 @@ | ||||
| 	close window | ||||
| 	kill session | ||||
| 	set status on/off | ||||
| 	set meta | ||||
| 	set shell | ||||
| 	bind key?? | ||||
| - fix resize (width problems with multiple clients?) | ||||
| - handle tmux in tmux (check $TMUX and abort) | ||||
| - check for some reqd terminfo caps on startup | ||||
|   | ||||
							
								
								
									
										17
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								input.c
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| /* $Id: input.c,v 1.16 2007-10-01 17:37:41 nicm Exp $ */ | ||||
| /* $Id: input.c,v 1.17 2007-10-03 00:13:46 nicm Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> | ||||
| @@ -1107,13 +1107,18 @@ input_store_two(struct buffer *b, u_char code, uint16_t ua, uint16_t ub) | ||||
| void | ||||
| input_store8(struct buffer *b, uint8_t n) | ||||
| { | ||||
| 	buffer_write(b, &n, sizeof n); | ||||
| 	buffer_ensure(b, 1); | ||||
| 	BUFFER_IN(b)[0] = n; | ||||
| 	buffer_add(b, 1); | ||||
| } | ||||
|  | ||||
| void | ||||
| input_store16(struct buffer *b, uint16_t n) | ||||
| { | ||||
| 	buffer_write(b, &n, sizeof n); | ||||
| 	buffer_ensure(b, 2); | ||||
| 	BUFFER_IN(b)[0] = n & 0xff; | ||||
| 	BUFFER_IN(b)[1] = n >> 8; | ||||
| 	buffer_add(b, 2); | ||||
| } | ||||
|  | ||||
| uint8_t | ||||
| @@ -1121,7 +1126,8 @@ input_extract8(struct buffer *b) | ||||
| { | ||||
| 	uint8_t	n; | ||||
|  | ||||
| 	buffer_read(b, &n, sizeof n); | ||||
| 	n = BUFFER_OUT(b)[0]; | ||||
| 	buffer_remove(b, 1); | ||||
| 	return (n); | ||||
| } | ||||
|  | ||||
| @@ -1130,6 +1136,7 @@ input_extract16(struct buffer *b) | ||||
| { | ||||
| 	uint16_t	n; | ||||
|  | ||||
| 	buffer_read(b, &n, sizeof n); | ||||
| 	n = BUFFER_OUT(b)[0] | (BUFFER_OUT(b)[1] << 8); | ||||
| 	buffer_remove(b, 2); | ||||
| 	return (n); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Nicholas Marriott
					Nicholas Marriott