From 60aa2d21489940373f29b394e81fef00c3bf85ba Mon Sep 17 00:00:00 2001
From: Etienne Brateau <etienne.brateau@ensiie.fr>
Date: Wed, 30 Jan 2019 17:57:27 +0100
Subject: [PATCH] Move some function into attrs files

---
 Makefile        |  2 +-
 include/attrs.h | 10 ++++++
 src/attrs.c     | 95 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/log.c       | 92 +----------------------------------------------
 4 files changed, 107 insertions(+), 92 deletions(-)
 create mode 100644 include/attrs.h
 create mode 100644 src/attrs.c

diff --git a/Makefile b/Makefile
index b0da43a..81b45c6 100644
--- a/Makefile
+++ b/Makefile
@@ -118,7 +118,7 @@ TOOLOBJ = $(SIMOBJ) \
 	  $(TARGET_DIR)/screen.o $(TARGET_DIR)/node.o			\
 	  $(TARGET_DIR)/tool.o $(TARGET_DIR)/utils.o		\
 	  $(TARGET_DIR)/pagewriter.o $(TARGET_DIR)/pagereader.o	\
-	  $(TARGET_DIR)/configreader.o
+	  $(TARGET_DIR)/configreader.o $(TARGET_DIR)/attrs.o
 
 
 $(TARGET_DIR)/ana/%.o: $(SRC_DIR)/ana/%.c
diff --git a/include/attrs.h b/include/attrs.h
new file mode 100644
index 0000000..5622569
--- /dev/null
+++ b/include/attrs.h
@@ -0,0 +1,10 @@
+#ifndef LOG_ATTRS_H
+#define LOG_ATTRS_H
+#include "logdef.h"
+
+
+void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr);
+void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr);
+void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr);
+
+#endif
diff --git a/src/attrs.c b/src/attrs.c
new file mode 100644
index 0000000..ebcd76d
--- /dev/null
+++ b/src/attrs.c
@@ -0,0 +1,95 @@
+#include "attrs.h"
+#include "settings.h"
+#include <utils/strings.h>
+
+void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
+{
+	short i;
+
+	*gattr = (log_gattrrec *)Malloc(numattrs * gattrrecsize);
+	for (i = 0; i < numattrs; i++)
+	{
+		switch (kattr[i].dtype)
+		{
+
+			case 'R':
+			case 'U':
+			case 'F':
+				(*gattr)[i].UU.r = kattr[i].UU.U82.r;
+				break;
+
+			case 'I':
+			case 'H':
+				(*gattr)[i].UU.U73.i1 = kattr[i].UU.U73.i1;
+				break;
+
+			case 'C':
+				(*gattr)[i].UU.c = (char *)Malloc(kattr[i].prec + 1L);
+				strcpy((*gattr)[i].UU.c, kattr[i].UU.c);
+				break;
+
+			case 'A':
+				(*gattr)[i].UU.sp = strdup(kattr[i].UU.sp);
+				break;
+
+			case 'B':
+				(*gattr)[i].UU.b = kattr[i].UU.b;
+				break;
+
+			case 'V':
+				(*gattr)[i].UU.nv = kattr[i].UU.U86.dv;
+				break;
+		}
+
+		(*gattr)[i].blnk = kattr[i].blnk;
+		(*gattr)[i].changed = false;
+	}
+}
+
+
+void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
+{
+	short i;
+
+	for (i = 0; i < numattrs; i++)
+	{
+		switch (kattr[i].dtype)
+		{
+
+			case 'C':
+				Free((*gattr)[i].UU.c);
+				break;
+
+			case 'A':
+				strdispose(&(*gattr)[i].UU.sp);
+				break;
+		}
+	}
+	Free(*gattr);
+}
+
+
+void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr)
+{
+	short i;
+
+	*gattr = (log_gattrrec *)Malloc(numattrs * gattrrecsize);
+	for (i = 0; i < numattrs; i++)
+	{
+		(*gattr)[i] = oldattr[i];
+		switch (kattr[i].dtype)
+		{
+
+			case 'C':
+				(*gattr)[i].UU.c = (char *)Malloc(kattr[i].prec + 1L);
+				strcpy((*gattr)[i].UU.c, oldattr[i].UU.c);
+				break;
+
+			case 'A':
+				(*gattr)[i].UU.sp = strdup(oldattr[i].UU.sp);
+				break;
+		}
+	}
+}
+
+
diff --git a/src/log.c b/src/log.c
index 84d93be..feb0626 100644
--- a/src/log.c
+++ b/src/log.c
@@ -62,6 +62,7 @@
 #include "logstructs.h"
 #include "logglobals.h"
 
+#include "attrs.h"
 #include "screen.h"
 #include "label.h"
 #include "gate.h"
@@ -1878,97 +1879,6 @@ static void clearconflicts(log_tool *tool)
 
 short getsignal (int d, char *n);
 
-
-void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
-{
-	short i;
-
-	*gattr = (log_gattrrec *)Malloc(numattrs * gattrrecsize);
-	for (i = 0; i < numattrs; i++)
-	{
-		switch (kattr[i].dtype)
-		{
-
-			case 'R':
-			case 'U':
-			case 'F':
-				(*gattr)[i].UU.r = kattr[i].UU.U82.r;
-				break;
-
-			case 'I':
-			case 'H':
-				(*gattr)[i].UU.U73.i1 = kattr[i].UU.U73.i1;
-				break;
-
-			case 'C':
-				(*gattr)[i].UU.c = (char *)Malloc(kattr[i].prec + 1L);
-				strcpy((*gattr)[i].UU.c, kattr[i].UU.c);
-				break;
-
-			case 'A':
-				(*gattr)[i].UU.sp = strdup(kattr[i].UU.sp);
-				break;
-
-			case 'B':
-				(*gattr)[i].UU.b = kattr[i].UU.b;
-				break;
-
-			case 'V':
-				(*gattr)[i].UU.nv = kattr[i].UU.U86.dv;
-				break;
-		}
-
-		(*gattr)[i].blnk = kattr[i].blnk;
-		(*gattr)[i].changed = false;
-	}
-}
-
-
-void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
-{
-	short i;
-
-	for (i = 0; i < numattrs; i++)
-	{
-		switch (kattr[i].dtype)
-		{
-
-			case 'C':
-				Free((*gattr)[i].UU.c);
-				break;
-
-			case 'A':
-				strdispose(&(*gattr)[i].UU.sp);
-				break;
-		}
-	}
-	Free(*gattr);
-}
-
-
-void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr)
-{
-	short i;
-
-	*gattr = (log_gattrrec *)Malloc(numattrs * gattrrecsize);
-	for (i = 0; i < numattrs; i++)
-	{
-		(*gattr)[i] = oldattr[i];
-		switch (kattr[i].dtype)
-		{
-
-			case 'C':
-				(*gattr)[i].UU.c = (char *)Malloc(kattr[i].prec + 1L);
-				strcpy((*gattr)[i].UU.c, oldattr[i].UU.c);
-				break;
-
-			case 'A':
-				(*gattr)[i].UU.sp = strdup(oldattr[i].UU.sp);
-				break;
-		}
-	}
-}
-
 /// Link box to the current page.
 static void linkbox(log_brec *b)
 {
-- 
GitLab