changeset 81:6e43956e740d

beginning of BOM utils refactoring: seqrefdes code factored out
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 23 Feb 2017 19:15:48 +0000
parents df98a82b807e
children 20c6f84c75e7
files ueda/mclutils/Makefile ueda/mclutils/mkbom.c ueda/mclutils/seqrefdes.c
diffstat 3 files changed, 47 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/ueda/mclutils/Makefile	Thu Feb 23 18:54:47 2017 +0000
+++ b/ueda/mclutils/Makefile	Thu Feb 23 19:15:48 2017 +0000
@@ -6,7 +6,13 @@
 
 all:	${PROGS}
 
-${PROGS}:	${LIBUEDA}
+getfps:	getfps.o ${LIBUEDA}
+	${CC} ${CFLAGS} -o $@ $@.o ${LIBUEDA}
+
+mkbom:	mkbom.o seqrefdes.o ${LIBUEDA}
+	${CC} ${CFLAGS} -o $@ $@.o seqrefdes.o ${LIBUEDA}
+
+shortbom:	shortbom.o ${LIBUEDA}
 	${CC} ${CFLAGS} -o $@ $@.o ${LIBUEDA}
 
 install:
@@ -16,7 +22,3 @@
 
 clean:
 	rm -f *.[ao] a.out core errs ${PROGS}
-
-getfps:	getfps.o
-mkbom:	mkbom.o
-shortbom: shortbom.o
--- a/ueda/mclutils/mkbom.c	Thu Feb 23 18:54:47 2017 +0000
+++ b/ueda/mclutils/mkbom.c	Thu Feb 23 19:15:48 2017 +0000
@@ -2,7 +2,6 @@
  * This program generates a procurement-oriented BOM from the MCL.
  */
 
-#include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -126,37 +125,6 @@
 	add_refdes_to_bompart(bp, refdes);
 }
 
-is_string_num(str)
-	char *str;
-{
-	if (*str < '1' || *str > '9')
-		return(0);
-	while (isdigit(*str))
-		str++;
-	if (*str)
-		return(0);
-	else
-		return(1);
-}
-
-is_refdes_sequential(str1, str2)
-	char *str1, *str2;
-{
-	int num1, num2;
-
-	while (isupper(*str1))
-		if (*str1++ != *str2++)
-			return(0);
-	if (!is_string_num(str1) || !is_string_num(str2))
-		return(0);
-	num1 = atoi(str1);
-	num2 = atoi(str2);
-	if (num2 == num1 + 1)
-		return(1);
-	else
-		return(0);
-}
-
 add_refdes_to_bompart(bp, refdes)
 	struct bompart *bp;
 	char *refdes;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ueda/mclutils/seqrefdes.c	Thu Feb 23 19:15:48 2017 +0000
@@ -0,0 +1,40 @@
+/*
+ * Detection of sequential reference designators
+ * for the tallying of refdes lists in BOM outputs
+ */
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+static
+is_string_num(str)
+	char *str;
+{
+	if (*str < '1' || *str > '9')
+		return(0);
+	while (isdigit(*str))
+		str++;
+	if (*str)
+		return(0);
+	else
+		return(1);
+}
+
+is_refdes_sequential(str1, str2)
+	char *str1, *str2;
+{
+	int num1, num2;
+
+	while (isupper(*str1))
+		if (*str1++ != *str2++)
+			return(0);
+	if (!is_string_num(str1) || !is_string_num(str2))
+		return(0);
+	num1 = atoi(str1);
+	num2 = atoi(str2);
+	if (num2 == num1 + 1)
+		return(1);
+	else
+		return(0);
+}