Commit Diff


commit - 615e0f9fb2df0e782f6b32ea9f0f67254e1ddeaf
commit + 4ca53ff0e0398171fe9afb1e989b97b30d3d584f
blob - 95ad545ff307a46f36a37a81a896f26589b12650
blob + 44cb6544e0e72d75d5879fb0b49401c6b9bed8d2
--- src/cmd/acme/text.c
+++ src/cmd/acme/text.c
@@ -949,7 +949,8 @@ textselect(Text *t)
 {
 	uint q0, q1;
 	int b, x, y;
-	int state, op;
+	int state;
+	enum { None, Cut, Paste };
 
 	selecttext = t;
 	/*
@@ -1005,32 +1006,32 @@ textselect(Text *t)
 		clicktext = nil;
 	textsetselect(t, q0, q1);
 	flushimage(display, 1);
-	state = op = 0;	/* undo when possible; +1 for cut, -1 for paste */
+	state = None;	/* what we've done; undo when possible */
 	while(mouse->buttons){
 		mouse->msec = 0;
 		b = mouse->buttons;
 		if((b&1) && (b&6)){
-			if(state==0 && t->what==Body){
+			if(state==None && t->what==Body){
 				seq++;
 				filemark(t->w->body.file);
 			}
 			if(b & 2){
-				if(state==-1 && t->what==Body){
+				if(state==Paste && t->what==Body){
 					winundo(t->w, TRUE);
-					textsetselect(t, q0, t->q0);
-					state = 0;
-				}else if(state != 1){
+					textsetselect(t, q0, t->q1);
+					state = None;
+				}else if(state != Cut){
 					cut(t, t, nil, TRUE, TRUE, nil, 0);
-					state = 1;
+					state = Cut;
 				}
 			}else{
-				if(state==1 && t->what==Body){
+				if(state==Cut && t->what==Body){
 					winundo(t->w, TRUE);
 					textsetselect(t, q0, t->q1);
-					state = 0;
-				}else if(state != -1){
+					state = None;
+				}else if(state != Paste){
 					paste(t, t, nil, TRUE, FALSE, nil, 0);
-					state = -1;
+					state = Paste;
 				}
 			}
 			textscrdraw(t);