git: 9front

Download patch

ref: d7a8280d953a01aafad0a9a962eb6968f002604d
parent: 4e50c5d1f0f4bd2eb4445c0c9497a81b0436a94c
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Sep 16 11:27:17 EDT 2018

libndb: add missing ndbdedup.c

--- /dev/null
+++ b/sys/src/libndb/ndbdedup.c
@@ -1,0 +1,30 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <ndb.h>
+
+/*
+ *  remove duplicates
+ */
+Ndbtuple*
+ndbdedup(Ndbtuple *t)
+{
+	Ndbtuple *nt, *last, *tt;
+
+	for(nt = t; nt != nil; nt = nt->entry){
+		last = nt;
+		for(tt = nt->entry; tt != nil; tt = last->entry){
+			if(strcmp(nt->attr, tt->attr) != 0
+			|| strcmp(nt->val, tt->val) != 0){
+				last = tt;
+				continue;
+			}
+			if(last->line == tt)
+				last->line = tt->line;
+			last->entry = tt->entry;
+			tt->entry = nil;
+			ndbfree(tt);
+		}
+	}
+	return t;
+}
--