27 char *cptr, *lptr, space[64];
30 if(rname==NULL || name1==NULL || name2==NULL || name3==NULL)
return(0);
32 printf(
" rname := '%s'\n", rname);
34 if(max_name_len<1)
return(0);
35 name1[0]=name2[0]=name3[0]=(char)0;
39 if((
int)strlen(rname)>max_name_len) {
41 strcpy(space,
" _-."); nr1=
strChrCount(temp, space);
43 if(nr1==0 && nr2>0 && nr2<=3) {
48 while(i<len && !isupper(temp[i])) i++;
49 n=i;
if(n>max_name_len) n=max_name_len;
50 strncpy(name1, cptr, n); name1[n]=(char)0; nr++;
52 while(i<len && (!isupper(temp[i]) || n==0)) {i++; n++;}
53 if(n>max_name_len) n=max_name_len;
55 strncpy(name2, cptr, n); name2[n]=(char)0; nr++;
57 while(i<len && (!isupper(temp[i]) || n==0)) {i++; n++;}
58 if(n>max_name_len) n=max_name_len;
59 if(n>0) {strncpy(name3, cptr, n); name3[n]=(char)0; nr++;}
62 printf(
" -> subnames := '%s' '%s' '%s'\n", name1, name2, name3);
70 printf(
"temp = '%s'\n", temp);
71 printf(
"temp2 = '%s'\n", temp2);
78 strcat(space,
"\n\r");
80 cptr=strtok(lptr, space);
if(cptr==NULL)
return(nr);
81 strncpy(name1, cptr, max_name_len); name1[max_name_len]=(char)0; nr++;
82 cptr=strtok(NULL, space);
if(cptr==NULL)
return(nr);
83 strncpy(name2, cptr, max_name_len); name2[max_name_len]=(char)0; nr++;
84 cptr=strtok(NULL, space);
if(cptr==NULL)
return(nr);
85 strncpy(name3, cptr, max_name_len); name3[max_name_len]=(char)0; nr++;
87 printf(
" -> subnames := '%s' '%s' '%s'\n", name1, name2, name3);
108 char *temp, *out, *cptr, *lptr;
111 if(rname1==NULL)
return -1;
113 if(len<1) {
if(rname2!=NULL) strcpy(rname2,
"");
return 0;}
114 temp=malloc(len+1);
if(temp==NULL)
return -3;
115 strcpy(temp, rname1);
116 if(rname2==NULL) out=rname1;
else out=rname2;
121 cptr=strtok(lptr,
" \t\n\r");
123 if(strcmp(cptr,
".")!=0) {
124 if(strlen(out)>0) strcat(out,
" ");
125 strcat(out, cptr); c++;
127 cptr=strtok(NULL,
" \t\n\r");
154 unsigned int ni, m, rtoknr=0, ttoknr=0;
157 if(rname==NULL || strlen(rname)<1)
return(0);
158 if(test_str==NULL || strlen(test_str)<1)
return(0);
162 if(rtoknr==0 || ttoknr==0)
return(0);
166 for(ni=0; ni<ttoknr; ni++) {
167 if( strcmp(test[ni],
".") &&
fncasematch(test[ni], region[ni])==0 ) {
174 for(ni=m=0; ni<strlen(test[0]); ni++)
175 if(isdigit((
int)test[0][ni])==0) {m++;
break;}
176 if(m==0 && (ni=atoi(test[0]))>0) {
177 if((
unsigned int)rnr==ni)
return(1);
else return(0);
180 for(ni=0; ni<rtoknr; ni++)
if(
fncasematch(test[0], region[ni]))
return(1);
204 unsigned int len, rlen;
206 if(rname==NULL || max_rname_len<1)
return 1;
207 if(name1==NULL && name2==NULL && name3==NULL)
return 2;
212 if(len>0 && len<(
unsigned int)max_rname_len && strcmp(name1,
".")!=0)
213 strcpy(rname, name1);
215 len=strlen(name2); rlen=strlen(rname);
216 if(len>0 && (len+strlen(rname)+1)<(
unsigned int)max_rname_len
217 && strcmp(name2,
".")!=0) {
218 if(rlen>0) {rname[rlen]=(char)space; rname[rlen+1]=(char)0;}
219 strcat(rname, name2);
222 len=strlen(name3); rlen=strlen(rname);
223 if(len>0 && (len+strlen(rname)+1)<(
unsigned int)max_rname_len
224 && strcmp(name3,
".")!=0) {
225 if(rlen>0) {rname[rlen]=(char)space; rname[rlen+1]=(char)0;}
226 strcat(rname, name3);
229 if(strlen(rname)<1)
return 3;
int rnameCatenate(char *rname, int max_rname_len, char *name1, char *name2, char *name3, char space)