aboutsummaryrefslogtreecommitdiff
path: root/unix/boot/spp/rpp/ratlibr/sdrop.r
diff options
context:
space:
mode:
Diffstat (limited to 'unix/boot/spp/rpp/ratlibr/sdrop.r')
-rw-r--r--unix/boot/spp/rpp/ratlibr/sdrop.r20
1 files changed, 20 insertions, 0 deletions
diff --git a/unix/boot/spp/rpp/ratlibr/sdrop.r b/unix/boot/spp/rpp/ratlibr/sdrop.r
new file mode 100644
index 00000000..fb3169cd
--- /dev/null
+++ b/unix/boot/spp/rpp/ratlibr/sdrop.r
@@ -0,0 +1,20 @@
+include defs
+
+# sdrop --- drop characters from a string APL-style
+
+ integer function sdrop (from, to, chars)
+ character from (ARB), to (ARB)
+ integer chars
+
+ integer len, start
+ integer ctoc, length, min0
+
+ len = length (from)
+ if (chars < 0)
+ return (ctoc (from, to, len + chars + 1))
+ else {
+ start = min0 (chars, len)
+ return (ctoc (from (start + 1), to, len + 1))
+ }
+
+ end