summaryrefslogtreecommitdiff
path: root/strings/strend.c
diff options
context:
space:
mode:
Diffstat (limited to 'strings/strend.c')
-rw-r--r--strings/strend.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/strings/strend.c b/strings/strend.c
new file mode 100644
index 00000000000..18b9d1fbd0d
--- /dev/null
+++ b/strings/strend.c
@@ -0,0 +1,33 @@
+/* File : strend.c
+ Author : Richard A. O'Keefe.
+ Updated: 23 April 1984
+ Defines: strend()
+
+ strend(s) returns a character pointer to the NUL which ends s. That
+ is, strend(s)-s == strlen(s). This is useful for adding things at
+ the end of strings. It is redundant, because strchr(s,'\0') could
+ be used instead, but this is clearer and faster.
+ Beware: the asm version works only if strlen(s) < 65535.
+*/
+
+#include <global.h>
+#include "m_string.h"
+
+#if VaxAsm
+
+char *strend(s)
+const char *s;
+{
+ asm("locc $0,$65535,*4(ap)");
+ asm("movl r1,r0");
+}
+
+#else /* ~VaxAsm */
+
+char *strend(register const char *s)
+{
+ while (*s++);
+ return (char*) (s-1);
+}
+
+#endif /* VaxAsm */