[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Antiright-devel] antiright/lib edit.c
From: |
Jeffrey Bedard |
Subject: |
[Antiright-devel] antiright/lib edit.c |
Date: |
Sun, 29 May 2005 17:54:10 -0400 |
CVSROOT: /cvsroot/antiright
Module name: antiright
Branch:
Changes by: Jeffrey Bedard <address@hidden> 05/05/29 21:54:10
Modified files:
lib : edit.c
Log message:
Fixed two segfaults due to filling nonexistant text.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/antiright/antiright/lib/edit.c.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
Patches:
Index: antiright/lib/edit.c
diff -u antiright/lib/edit.c:1.5 antiright/lib/edit.c:1.6
--- antiright/lib/edit.c:1.5 Sat Feb 12 17:57:41 2005
+++ antiright/lib/edit.c Sun May 29 21:54:10 2005
@@ -73,12 +73,25 @@
antiright_comment_selection(Widget widget,
XtPointer client_data, XtPointer call_data)
{
- XmTextPosition left, right;
- XmTextGetSelectionPosition((Widget)client_data, &left, &right);
- XmTextInsert((Widget)client_data, left, "/* ");
- XmTextInsert((Widget)client_data, right+3, " */");
- widget=NULL;
- call_data=NULL;
+ printf("FILE_TYPE: %d\n", antiright.workfile_type);
+ if(antiright.workfile_type==C || antiright.workfile_type==H)
+ {
+ XmTextPosition left, right;
+ XmTextGetSelectionPosition((Widget)client_data, &left, &right);
+ XmTextInsert((Widget)client_data, left, "/* ");
+ XmTextInsert((Widget)client_data, right+3, " */");
+ widget=NULL;
+ call_data=NULL;
+ }
+ else if(antiright.workfile_type==SH)
+ {
+ XmTextPosition left, right;
+ XmTextGetSelectionPosition((Widget)client_data, &left, &right);
+ XmTextInsert((Widget)client_data, left, "# ");
+ /*XmTextInsert((Widget)client_data, right+3, " #");*/
+ widget=NULL;
+ call_data=NULL;
+ }
}
void
antiright_uncomment_selection(Widget widget,
@@ -161,10 +174,13 @@
char *selection;
XmTextPosition left, right;
XmTextGetSelectionPosition((Widget)client_data, &left, &right);
- selection=XmTextGetSelection((Widget)client_data);
- antiright_fill_text(&selection);
- XmTextReplace((Widget)client_data, left, right, selection);
- XtFree(selection);
+ if(right!=left)
+ {
+ selection=XmTextGetSelection((Widget)client_data);
+ antiright_fill_text(&selection);
+ XmTextReplace((Widget)client_data, left, right, selection);
+ XtFree(selection);
+ }
widget=NULL;
call_data=NULL;
}
@@ -175,12 +191,15 @@
{
char *selection;
unsigned int right=XmTextGetLastPosition((Widget)client_data);
- XmTextSetSelection((Widget)client_data, 0, right,
- XtLastTimestampProcessed(antiright.display));
- selection=XmTextGetSelection((Widget)client_data);
- antiright_fill_text(&selection);
- XmTextReplace((Widget)client_data, 0, right, selection);
- XtFree(selection);
+ if(right!=0)
+ {
+ XmTextSetSelection((Widget)client_data, 0, right,
+ XtLastTimestampProcessed(antiright.display));
+ selection=XmTextGetSelection((Widget)client_data);
+ antiright_fill_text(&selection);
+ XmTextReplace((Widget)client_data, 0, right, selection);
+ XtFree(selection);
+ }
widget=NULL;
call_data=NULL;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Antiright-devel] antiright/lib edit.c,
Jeffrey Bedard <=