Replaced some large local variables by other means which save stack space
This commit is contained in:
parent
686659514b
commit
4926c98dd4
@ -463,24 +463,31 @@ return:
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int i,ret;
|
int i,ret;
|
||||||
char reply[SfileadrL];
|
char *reply= NULL;
|
||||||
|
|
||||||
|
reply= TSOB_FELD(char, SfileadrL);
|
||||||
|
if(reply == NULL)
|
||||||
|
return(-1);
|
||||||
|
|
||||||
*reply_count= 0;
|
*reply_count= 0;
|
||||||
for(i=0;i<max_replies;i++) {
|
for(i=0;i<max_replies;i++) {
|
||||||
ret= Dirseq_next_adr(o,reply,flag&(1|2|4));
|
ret= Dirseq_next_adr(o,reply,flag&(1|2|4));
|
||||||
if(ret<0)
|
if(ret<0)
|
||||||
return(ret);
|
goto ex;
|
||||||
if(ret==0)
|
if(ret==0)
|
||||||
break;
|
break;
|
||||||
if(Sregex_string(&(replies[i]),reply,0)<=0)
|
if(Sregex_string(&(replies[i]),reply,0)<=0)
|
||||||
return(-1);
|
{ret= -1; goto ex;}
|
||||||
(*reply_count)++;
|
(*reply_count)++;
|
||||||
}
|
}
|
||||||
if((*reply_count)==0)
|
if((*reply_count)==0)
|
||||||
return(0);
|
{ret= 0; goto ex;}
|
||||||
if(flag&16)
|
if(flag&16)
|
||||||
Sort_argv(*reply_count,replies,0);
|
Sort_argv(*reply_count,replies,0);
|
||||||
return(1);
|
ret= 1;
|
||||||
|
ex:;
|
||||||
|
free(reply);
|
||||||
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -764,7 +771,7 @@ int Exclusions_add_not_leafs(struct ExclusionS *o, char *not_leafs_descr,
|
|||||||
int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag)
|
int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag)
|
||||||
{
|
{
|
||||||
struct Xorriso_lsT *s;
|
struct Xorriso_lsT *s;
|
||||||
char leaf[SfileadrL], *leaf_pt;
|
char *leaf= NULL, *leaf_pt;
|
||||||
regmatch_t match[1];
|
regmatch_t match[1];
|
||||||
int ret, was_non_slash, l;
|
int ret, was_non_slash, l;
|
||||||
|
|
||||||
@ -774,12 +781,12 @@ int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag)
|
|||||||
l= strlen(s->text);
|
l= strlen(s->text);
|
||||||
if(strncmp(abs_path, s->text, l)==0)
|
if(strncmp(abs_path, s->text, l)==0)
|
||||||
if(abs_path[l]=='/' || abs_path[l]==0)
|
if(abs_path[l]=='/' || abs_path[l]==0)
|
||||||
return(1);
|
{ret= 1; goto ex;}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for(s= o->not_paths; s!=NULL; s= s->next)
|
for(s= o->not_paths; s!=NULL; s= s->next)
|
||||||
if(strcmp(abs_path, s->text)==0)
|
if(strcmp(abs_path, s->text)==0)
|
||||||
return(1);
|
{ret= 1; goto ex;}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* determine leafname */
|
/* determine leafname */
|
||||||
@ -794,8 +801,8 @@ int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag)
|
|||||||
was_non_slash= 1;
|
was_non_slash= 1;
|
||||||
}
|
}
|
||||||
if(strlen(leaf_pt)>=SfileadrL)
|
if(strlen(leaf_pt)>=SfileadrL)
|
||||||
return(-1);
|
{ret= -1; goto ex;}
|
||||||
strcpy(leaf, leaf_pt);
|
leaf= strdup(leaf_pt);
|
||||||
leaf_pt= strchr(leaf, '/');
|
leaf_pt= strchr(leaf, '/');
|
||||||
if(leaf_pt!=NULL)
|
if(leaf_pt!=NULL)
|
||||||
*leaf_pt= 0;
|
*leaf_pt= 0;
|
||||||
@ -804,9 +811,13 @@ int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag)
|
|||||||
for(s= o->not_leafs; s!=NULL; s= s->next) {
|
for(s= o->not_leafs; s!=NULL; s= s->next) {
|
||||||
ret= regexec((regex_t *) s->text, leaf, 1, match, 0);
|
ret= regexec((regex_t *) s->text, leaf, 1, match, 0);
|
||||||
if(ret==0)
|
if(ret==0)
|
||||||
return(2);
|
{ret= 2; goto ex;}
|
||||||
}
|
}
|
||||||
return(0);
|
ret= 0;
|
||||||
|
ex:
|
||||||
|
if(leaf != NULL)
|
||||||
|
free(leaf);
|
||||||
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -953,7 +964,6 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper,
|
|||||||
struct XorrisO *xorriso, int flag)
|
struct XorrisO *xorriso, int flag)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
char sfe[5*SfileadrL];
|
|
||||||
struct utimbuf utime_buffer;
|
struct utimbuf utime_buffer;
|
||||||
struct PermiteM *m, *m_next;
|
struct PermiteM *m, *m_next;
|
||||||
|
|
||||||
@ -974,9 +984,9 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper,
|
|||||||
if(ret==-1) {
|
if(ret==-1) {
|
||||||
if(xorriso!=NULL) {
|
if(xorriso!=NULL) {
|
||||||
sprintf(xorriso->info_text,
|
sprintf(xorriso->info_text,
|
||||||
"Cannot change access permissions of disk directory: chmod %o %s",
|
"Cannot change access permissions of disk directory: chmod %o ",
|
||||||
(unsigned int) (m->stbuf.st_mode & 07777),
|
(unsigned int) (m->stbuf.st_mode & 07777));
|
||||||
Text_shellsafe(m->disk_path, sfe, 0));
|
Text_shellsafe(m->disk_path, xorriso->info_text, 1);
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
@ -990,8 +1000,8 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper,
|
|||||||
ret= utime(m->disk_path,&utime_buffer);
|
ret= utime(m->disk_path,&utime_buffer);
|
||||||
if(ret==-1 && xorriso!=NULL) {
|
if(ret==-1 && xorriso!=NULL) {
|
||||||
sprintf(xorriso->info_text,
|
sprintf(xorriso->info_text,
|
||||||
"Cannot change timestamps of disk directory: %s",
|
"Cannot change timestamps of disk directory: ");
|
||||||
Text_shellsafe(m->disk_path, sfe, 0));
|
Text_shellsafe(m->disk_path, xorriso->info_text, 1);
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2011.04.30.121138"
|
#define Xorriso_timestamP "2011.05.02.090908"
|
||||||
|
Loading…
Reference in New Issue
Block a user