~ubuntu-branches/ubuntu/saucy/ng/saucy

« back to all changes in this revision

Viewing changes to sys/bsd/fileio.c

  • Committer: Bazaar Package Importer
  • Author(s): Masayuki Hatta (mhatta)
  • Date: 2008-07-17 08:10:34 UTC
  • mfrom: (4.1.2 hardy)
  • Revision ID: james.westby@ubuntu.com-20080717081034-s7iitiihm9hl4jjg
Tags: 1.5~beta1-3
Bumped to Standards-Version: 3.8.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* $Id: fileio.c,v 1.1.1.1.2.1 2000/12/01 10:01:06 amura Exp $ */
 
1
/* $Id: fileio.c,v 1.4 2000/12/27 16:55:41 amura Exp $ */
2
2
/*
3
3
 *              bsd (4.2, others?), Sun (3.2, ?) and Ultrix-32 (?) file I/O.
4
4
 */
5
5
 
6
6
/*
7
7
 * $Log: fileio.c,v $
8
 
 * Revision 1.1.1.1.2.1  2000/12/01 10:01:06  amura
 
8
 * Revision 1.4  2000/12/27 16:55:41  amura
 
9
 * change d_makename() params for conservative reason, and bugfix in dires_()
 
10
 *
 
11
 * Revision 1.3  2000/12/14 18:17:37  amura
 
12
 * filename length become flexible and small bugfix
 
13
 *
 
14
 * Revision 1.2  2000/12/01 09:50:23  amura
9
15
 * fix problems open "/" and sybolic link directory
10
16
 *
11
17
 * Revision 1.1.1.1  2000/06/27 01:48:02  amura
149
155
fbackupfile(fn) char *fn; {
150
156
        register char   *nname;
151
157
 
152
 
        if ((nname=malloc((unsigned)(strlen(fn)+1+1))) == NULL) {
 
158
        if ((nname=alloca((unsigned)(strlen(fn)+1+1))) == NULL) {
153
159
                ewprintf("Can't get %d bytes", strlen(fn) + 1);
154
160
                return (ABORT);
155
161
        }
160
166
                free(nname);
161
167
                return (FALSE);
162
168
        }
163
 
        free(nname);
164
169
        return (TRUE);
165
170
}
166
171
 
275
280
                }
276
281
            }
277
282
        default:
278
 
#ifndef NODIR
 
283
#ifndef NO_DIR
279
284
            strcpy(fnb, wdir);
280
285
            cp = fnb + strlen(fnb);
281
286
            break;
456
461
    }
457
462
    if(bclear(bp) != TRUE) return FALSE;
458
463
#ifdef  EXTD_DIR
459
 
    strncpy(bp->b_cwd, dirname, NFILEN);
 
464
    if (bp->b_cwd)
 
465
        free(bp->b_cwd);
 
466
    if ((bp->b_cwd=malloc(strlen(dirname)+1)) != NULL)
 
467
        strcpy(bp->b_cwd, dirname);
460
468
    ensurecwd();
461
469
#endif
462
470
#ifdef  BUGFIX  /* 91.02.04  by M.Oki */
480
488
        return NULL;
481
489
    }
482
490
    bp->b_dotp = lforw(bp->b_linep);            /* go to first line */
483
 
    (VOID) strncpy(bp->b_fname, dirname, NFILEN);
 
491
    if (bp->b_fname)
 
492
        free(bp->b_fname);
 
493
    if ((bp->b_fname=malloc(strlen(dirname)+1)) != NULL)
 
494
        (VOID) strcpy(bp->b_fname, dirname);
484
495
    if((bp->b_modes[0] = name_mode("dired")) == NULL) {
485
496
        bp->b_modes[0] = &map_table[0];
486
497
        ewprintf("Could not find mode dired");
490
501
    return bp;
491
502
}
492
503
 
493
 
d_makename(lp, fn)
 
504
d_makename(lp, fn, buflen)
494
505
register LINE *lp;
495
 
register char **fn;
 
506
register char *fn;
496
507
{
497
508
  char* cp;
498
509
  int l,l1,len;
522
533
      while (l > 2 && lgetc(lp, l)==' ')
523
534
        l--;
524
535
      while (l > 2 && (c=lgetc(lp, l))!=' ') {
525
 
        if (c!=':' && (c<'0'&&c>'9')) {
 
536
        if (c!=':' && (c<'0'||c>'9')) {
526
537
          break;
527
538
        }
528
539
        l--;
535
546
  l++;
536
547
 
537
548
  len = llength(lp) - l + 1;
538
 
  cp = malloc(len + strlen(curbp->b_fname) + 1);
539
 
  if (cp) {
540
 
    *fn = cp;
541
 
    strcpy(cp, curbp->b_fname);
542
 
    cp += strlen(cp);
543
 
    bcopy(lp->l_text + l, cp, len);
544
 
    cp[len-1] = '\0';
 
549
  if (buflen <= len+strlen(curbp->b_fname)) return ABORT;
 
550
  cp = fn;
 
551
  strcpy(cp, curbp->b_fname);
 
552
  cp += strlen(cp);
 
553
  bcopy(lp->l_text + l, cp, len);
 
554
  cp[len-1] = '\0';
545
555
#ifdef SYMBLINK
546
 
    if (lgetc(lp, 2) == 'l')
547
 
      return ffisdir(curbp->b_fname);
 
556
  if (lgetc(lp, 2) == 'l')
 
557
    return ffisdir(curbp->b_fname);
548
558
#endif
549
 
    return lgetc(lp, 2) == 'd';
550
 
  }
551
 
  else {
552
 
    return ABORT;
553
 
  }
 
559
  return lgetc(lp, 2) == 'd';
554
560
}
555
561
#endif
556
562