- if (new_buf)
- {
- len=strlen(p);
- buflen= NAMSIZ<=len ? len + NAMSIZ : NAMSIZ;
- namebuf= ck_malloc(buflen+1);
-
- (void)strcpy(namebuf,p);
- if(namebuf[len-1]!='/') {
- namebuf[len++]='/';
- namebuf[len]='\0';
- }
- for(p_buf=new_buf;*p_buf;p_buf+=sublen+1) {
- sublen=strlen(p_buf);
- if(*p_buf=='D') {
- if(len+sublen>=buflen) {
- buflen+=NAMSIZ;
- namebuf= ck_realloc(namebuf,buflen+1);
+ len=strlen(p);
+ buflen= NAMSIZ<=len ? len + NAMSIZ : NAMSIZ;
+ namebuf= ck_malloc(buflen+1);
+
+ (void)strcpy(namebuf,p);
+ if(namebuf[len-1]!='/') {
+ namebuf[len++]='/';
+ namebuf[len]='\0';
+ }
+ for(p_buf=new_buf;*p_buf;p_buf+=sublen+1) {
+ sublen=strlen(p_buf);
+ if(*p_buf=='D') {
+ if(len+sublen>=buflen) {
+ buflen+=NAMSIZ;
+ namebuf= ck_realloc(namebuf,buflen+1);
+ }
+ (void)strcpy(namebuf+len,p_buf+1);
+ addname(namebuf);
+ add_dir_name(namebuf,device);