summaryrefslogtreecommitdiff
path: root/lib/ZFmtRawLst.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ZFmtRawLst.c')
-rw-r--r--lib/ZFmtRawLst.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/ZFmtRawLst.c b/lib/ZFmtRawLst.c
new file mode 100644
index 0000000..a9ba259
--- /dev/null
+++ b/lib/ZFmtRawLst.c
@@ -0,0 +1,50 @@
+/* This file is part of the Project Athena Zephyr Notification System.
+ * It contains source for the ZFormatRawNoticeList function.
+ *
+ * Created by: Robert French
+ *
+ * $Source$
+ * $Author$
+ *
+ * Copyright (c) 1987 by the Massachusetts Institute of Technology.
+ * For copying and distribution information, see the file
+ * "mit-copyright.h".
+ */
+/* $Header$ */
+
+#include <zephyr/mit-copyright.h>
+
+#include <zephyr/zephyr.h>
+
+Code_t ZFormatRawNoticeList(notice,list,nitems,buffer,buffer_len,ret_len)
+ ZNotice_t *notice;
+ char *list[];
+ int nitems;
+ ZPacket_t buffer;
+ int buffer_len;
+ int *ret_len;
+{
+ char *ptr,*end;
+ Code_t retval;
+
+ end = buffer+buffer_len;
+
+ if ((retval = Z_FormatRawHeader(notice,buffer,buffer_len,ret_len)) !=
+ ZERR_NONE)
+ return (retval);
+
+ ptr = buffer+*ret_len;
+
+ for (;nitems;nitems--,list++) {
+ if (ptr+strlen(*list)+1 > end)
+ return (ZERR_PKTLEN);
+ bcopy(*list,ptr,strlen(*list)+1);
+ *ret_len += strlen(*list)+1;
+ ptr += strlen(*list)+1;
+ }
+
+ if (*ret_len > Z_MAXPKTLEN)
+ return (ZERR_PKTLEN);
+
+ return (ZERR_NONE);
+}