version 1.148, 2006/04/16 12:30:00 |
version 1.149, 2006/04/17 12:03:19 |
|
|
pb.file->rf_flags |= RCS_CREATE; |
pb.file->rf_flags |= RCS_CREATE; |
} |
} |
|
|
if (pb.flags & NEWFILE) |
if (pb.flags & NEWFILE) { |
status = checkin_init(&pb); |
if (checkin_init(&pb) == -1) |
else |
status = 1; |
status = checkin_update(&pb); |
} else { |
|
if (checkin_update(&pb) == -1) |
|
status = 1; |
|
} |
|
|
/* reset NEWFILE flag */ |
/* reset NEWFILE flag */ |
pb.flags &= ~NEWFILE; |
pb.flags &= ~NEWFILE; |
|
|
static int |
static int |
checkin_update(struct checkin_params *pb) |
checkin_update(struct checkin_params *pb) |
{ |
{ |
char *filec, numb1[64], numb2[64]; |
char *filec, numb1[64], numb2[64]; |
struct stat st; |
struct stat st; |
BUF *bp; |
BUF *bp; |
|
|
|
filec = NULL; |
|
|
/* |
/* |
* XXX this is wrong, we need to get the revision the user |
* XXX this is wrong, we need to get the revision the user |
* has the lock for. So we can decide if we want to create a |
* has the lock for. So we can decide if we want to create a |
|
|
pb->frev = pb->file->rf_head; |
pb->frev = pb->file->rf_head; |
|
|
/* Load file contents */ |
/* Load file contents */ |
if ((bp = cvs_buf_load(pb->filename, BUF_AUTOEXT)) == NULL) { |
if ((bp = cvs_buf_load(pb->filename, BUF_AUTOEXT)) == NULL) |
rcs_close(pb->file); |
goto fail; |
return (-1); |
|
} |
|
|
|
cvs_buf_putc(bp, '\0'); |
cvs_buf_putc(bp, '\0'); |
filec = (char *)cvs_buf_release(bp); |
filec = (char *)cvs_buf_release(bp); |
|
|
return (0); |
return (0); |
|
|
fail: |
fail: |
xfree(filec); |
if (filec != NULL) |
|
xfree(filec); |
if (pb->deltatext != NULL) |
if (pb->deltatext != NULL) |
xfree(pb->deltatext); |
xfree(pb->deltatext); |
return (-1); |
return (-1); |
|
|
const char *rcs_desc; |
const char *rcs_desc; |
struct stat st; |
struct stat st; |
|
|
|
filec = NULL; |
|
|
/* If this is a zero-ending RCSNUM eg 4.0, increment it (eg to 4.1) */ |
/* If this is a zero-ending RCSNUM eg 4.0, increment it (eg to 4.1) */ |
if (pb->newrev != NULL && RCSNUM_ZERO_ENDING(pb->newrev)) { |
if (pb->newrev != NULL && RCSNUM_ZERO_ENDING(pb->newrev)) { |
pb->frev = rcsnum_alloc(); |
pb->frev = rcsnum_alloc(); |
|
|
} |
} |
|
|
/* Load file contents */ |
/* Load file contents */ |
if ((bp = cvs_buf_load(pb->filename, BUF_AUTOEXT)) == NULL) { |
if ((bp = cvs_buf_load(pb->filename, BUF_AUTOEXT)) == NULL) |
rcs_close(pb->file); |
goto fail; |
return (-1); |
|
} |
|
|
|
cvs_buf_putc(bp, '\0'); |
cvs_buf_putc(bp, '\0'); |
filec = (char *)cvs_buf_release(bp); |
filec = (char *)cvs_buf_release(bp); |
|
|
|
|
return (0); |
return (0); |
fail: |
fail: |
xfree(filec); |
if (filec != NULL) |
|
xfree(filec); |
return (-1); |
return (-1); |
} |
} |
|
|