summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
94ff35a)
SCCS-vsn: usr.sbin/lpr/lpr/lpr.c 4.11
char lpr_id[] = "~|^`lpr.c:\t4.2\t1 May 1981\n";
char lpr_id[] = "~|^`lpr.c:\t4.2\t1 May 1981\n";
-/* lpr.c 4.10 83/03/09 */
+/* lpr.c 4.11 83/03/11 */
/*
* lpr -- off line print
*
/*
* lpr -- off line print
*
+ /*
+ * Touch the control file to fix position in the queue.
+ */
+ if ((tfd = open(tfname, 2)) >= 0) {
+ char c;
+
+ if (read(tfd, &c, 1) == 1 && lseek(tfd, 0L, 0) == 0 &&
+ write(tfd, &c, 1) != 1) {
+ printf("%s: cannot touch %s\n", name, tfname);
+ tfname[inchar]++;
+ out();
+ }
+ (void) close(tfd);
+ }
if (link(tfname, cfname) < 0) {
printf("%s: cannot rename %s\n", name, cfname);
tfname[inchar]++;
if (link(tfname, cfname) < 0) {
printf("%s: cannot rename %s\n", name, cfname);
tfname[inchar]++;
printf("%s: cannot chown %s\n", name, n);
out();
}
printf("%s: cannot chown %s\n", name, n);
out();
}
+ if (++n[inchar] > 'z') {
+ if (++n[inchar-2] == 't') {
+ printf("too many files - break up the job\n");
+ out();
+ }
+ n[inchar] = 'A';
+ } else if (n[inchar] == '[')
+ n[inchar] = 'a';
unlink(cfname);
}
if (dfname)
unlink(cfname);
}
if (dfname)
- while (dfname[i] != 'A') {
- dfname[i]--;
- unlink(dfname);
+ while (dfname[i-2] >= 'd') {
+ while (dfname[i] != 'A') {
+ dfname[i]--;
+ unlink(dfname);
+ }
+ dfname[i-2]--;