... | ... |
@@ -109,7 +109,7 @@ static void sighandler_sigpipe(int num); |
109 | 109 |
static int mystricmp(const char *s1, const char *s2); |
110 | 110 |
|
111 | 111 |
|
112 |
-re_t *re_init(void); |
|
112 |
+re_t *re_init(int viewonly); |
|
113 | 113 |
void re_free(re_t *re); |
114 | 114 |
int re_setuidata(re_t *re); |
115 | 115 |
|
... | ... |
@@ -152,17 +152,19 @@ main(int argc, char *argv[]) |
152 | 152 |
int flag_had_events; |
153 | 153 |
time_t lastidle,now; |
154 | 154 |
int load_pending; |
155 |
+ int viewonly; |
|
155 | 156 |
int i,l; |
156 | 157 |
if(argc!=2 || strcmp(argv[argc-1],"--help")==0) { |
157 | 158 |
fprintf(stderr,"Syntax: %s filename\n",argv[0]); |
158 | 159 |
return(1); |
159 | 160 |
} |
160 |
- if((re=re_init())==NULL) { |
|
161 |
+ viewonly=0; |
|
162 |
+ if((i=strlen(argv[0]))>=(l=strlen(VIEWONLYPROGNAME)) && strcmp(argv[0]+i-l,VIEWONLYPROGNAME)==0) |
|
163 |
+ viewonly=1; |
|
164 |
+ if((re=re_init(viewonly))==NULL) { |
|
161 | 165 |
fprintf(stderr,"ERROR: couldn't init structs.\n"); |
162 | 166 |
return(2); |
163 | 167 |
} |
164 |
- if((i=strlen(argv[0]))>=(l=strlen(VIEWONLYPROGNAME)) && strcmp(argv[0]+i-l,VIEWONLYPROGNAME)==0) |
|
165 |
- re->viewonly=1; |
|
166 | 168 |
if((ssel=sselect_init())==NULL) { |
167 | 169 |
fprintf(stderr,"ERROR: couln't init internal data.\n"); |
168 | 170 |
re_free(re),re=NULL; |
... | ... |
@@ -456,17 +458,24 @@ mystricmp(const char *s1, const char *s2) |
456 | 458 |
} |
457 | 459 |
|
458 | 460 |
re_t * |
459 |
-re_init(void) |
|
461 |
+re_init(int viewonly) |
|
460 | 462 |
{ |
461 | 463 |
re_t *re; |
462 | 464 |
if((re=malloc(sizeof(re_t)))==NULL) |
463 | 465 |
return(NULL); /* insuf. mem. */ |
464 | 466 |
memset(re,0,sizeof(re_t)); |
465 |
- if((re->data=redata_init( |
|
466 |
- redata_unsaved_register, |
|
467 |
- redata_highlighter_register, |
|
468 |
- redata_prototypes_register, |
|
469 |
- NULL))==NULL) { |
|
467 |
+ if(viewonly==0) { |
|
468 |
+ re->data=redata_init( |
|
469 |
+ redata_unsaved_register, |
|
470 |
+ redata_highlighter_register, |
|
471 |
+ redata_prototypes_register, |
|
472 |
+ NULL); |
|
473 |
+ } else { /* viewonly */ |
|
474 |
+ re->data=redata_init( |
|
475 |
+ redata_highlighter_register, |
|
476 |
+ NULL); |
|
477 |
+ } |
|
478 |
+ if(re->data==NULL) { |
|
470 | 479 |
re_free(re),re=NULL; |
471 | 480 |
return(NULL); /* insuf. mem. */ |
472 | 481 |
} |
... | ... |
@@ -475,6 +484,7 @@ re_init(void) |
475 | 484 |
re_free(re),re=NULL; |
476 | 485 |
return(NULL); /* video init error */ |
477 | 486 |
} |
487 |
+ re->viewonly=(viewonly!=0)?1:0; |
|
478 | 488 |
return(re); |
479 | 489 |
} |
480 | 490 |
|