summaryrefslogtreecommitdiff
path: root/do/truncate
diff options
context:
space:
mode:
Diffstat (limited to 'do/truncate')
-rw-r--r--do/truncate55
1 files changed, 0 insertions, 55 deletions
diff --git a/do/truncate b/do/truncate
deleted file mode 100644
index bf8306fcbb..0000000000
--- a/do/truncate
+++ /dev/null
@@ -1,55 +0,0 @@
-int /*SUPPRESS 590*/
-do_truncate(TARG,arg,gimme,arglast)
-STR *TARG;
-register ARG *arg;
-int gimme;
-int *arglast;
-{
- register ARRAY *ary = stack;
- register int sp = arglast[0] + 1;
- off_t len = (off_t)str_gnum(ary->ary_array[sp+1]);
- int result = 1;
- STAB *tmpstab;
-
-#if defined(HAS_TRUNCATE) || defined(HAS_CHSIZE)
-#ifdef HAS_TRUNCATE
- if ((arg[1].arg_type & A_MASK) == A_WORD) {
- tmpstab = arg[1].arg_ptr.arg_stab;
- if (!stab_io(tmpstab) || !stab_io(tmpstab)->ifp ||
- ftruncate(fileno(stab_io(tmpstab)->ifp), len) < 0)
- result = 0;
- }
- else if (truncate(str_get(ary->ary_array[sp]), len) < 0)
- result = 0;
-#else
- if ((arg[1].arg_type & A_MASK) == A_WORD) {
- tmpstab = arg[1].arg_ptr.arg_stab;
- if (!stab_io(tmpstab) || !stab_io(tmpstab)->ifp ||
- chsize(fileno(stab_io(tmpstab)->ifp), len) < 0)
- result = 0;
- }
- else {
- int tmpfd;
-
- if ((tmpfd = open(str_get(ary->ary_array[sp]), 0)) < 0)
- result = 0;
- else {
- if (chsize(tmpfd, len) < 0)
- result = 0;
- close(tmpfd);
- }
- }
-#endif
-
- if (result)
- str_sset(TARG,&str_yes);
- else
- str_sset(TARG,&str_undef);
- STABSET(TARG);
- ary->ary_array[sp] = TARG;
- return sp;
-#else
- fatal("truncate not implemented");
-#endif
-}
-