From 218d5b0040f5438b383b3541ba208d9b51d4b9dd Mon Sep 17 00:00:00 2001
From: LAN-TW <lantw44@gmail.com>
Date: Fri, 29 Nov 2013 14:06:55 +0800
Subject: Refactor build system and combine some files

---
 src/l4array.h | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 src/l4array.h

(limited to 'src/l4array.h')

diff --git a/src/l4array.h b/src/l4array.h
new file mode 100644
index 0000000..192f49d
--- /dev/null
+++ b/src/l4array.h
@@ -0,0 +1,43 @@
+#ifndef L4LIB_DYNAMIC_ARRAY
+#define L4LIB_DYNAMIC_ARRAY
+
+#include <stdio.h> /* 取得 FILE */
+
+/*********** 一維陣列 ***********/
+
+typedef struct l4lib_dyn_arr{
+	int arr_itemsize;		/* 每個項目的大小 */
+	int arr_curlen;			/* 陣列總長度 */
+	int arr_maxlen;			/* 陣列最大長度 */
+	void* arr_data;			/* 資料區 */
+} L4DA ;
+
+L4DA* l4da_create_setmax(int, int, int);
+L4DA* l4da_create(int, int);
+void l4da_free(L4DA*);
+int l4da_pushback(L4DA*, const void*);
+#define l4da_popback(arr) (((arr)->arr_curlen)--)
+#define l4da_getlen(arr) ((arr)->arr_curlen)
+int l4da_setlen(L4DA*, int);
+#define l4da_getmax(arr) ((arr)->arr_maxlen)
+int l4da_setmax(L4DA*, int);
+int l4da_strip(L4DA*);
+#define l4da_itemsize(arr) ((arr)->arr_itemsize)
+#define l4da_data(arr) ((arr)->arr_data)
+#define l4da_v(arr, type, num) \
+	(*(((type*)((arr)->arr_data))+(num)))
+#define l4da_vp(arr, num) \
+	((void*)(((char*)((arr)->arr_data))+(((arr)->arr_itemsize)*(num))))
+
+#define l4da_readline() (l4da_filereadline_delim(stdin, '\n'))
+#define l4da_readline_delim(delim) (l4da_filereadline_delim(stdin, (delim)))
+#define l4da_filereadline(infile) (l4da_filereadline_delim((infile), '\n'))
+L4DA* l4da_filereadline_delim(FILE*, int);
+
+L4DA* l4da_dup(const L4DA*);
+int l4da_combine(L4DA*, const L4DA*);
+
+void* l4da_drop_struct(L4DA*);
+L4DA* l4da_make_struct(void*, int, int, int);
+
+#endif
-- 
cgit