summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ktrans/main.c
diff options
context:
space:
mode:
authorJacob Moody <moody@posixcafe.org>2022-07-17 17:51:11 +0000
committerJacob Moody <moody@posixcafe.org>2022-07-17 17:51:11 +0000
commit0ec0154bc9da3c0b48f2f2cae08347129a8ec3d4 (patch)
treede865c2f18c3042f8f77bffc20e81d9dbfc67f9f /sys/src/cmd/ktrans/main.c
parent23620b2e70e9de0ce31c6f4f21926a044c5deabc (diff)
ktrans: don't leak on conflicting jisho lines
Tidy up the hash interface to make cleanup a bit more explicit vs non cleanup.
Diffstat (limited to 'sys/src/cmd/ktrans/main.c')
-rw-r--r--sys/src/cmd/ktrans/main.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/src/cmd/ktrans/main.c b/sys/src/cmd/ktrans/main.c
index 3757096ee..fb0cfe230 100644
--- a/sys/src/cmd/ktrans/main.c
+++ b/sys/src/cmd/ktrans/main.c
@@ -122,14 +122,13 @@ initmap(Map *m, int n)
//confict; partial & valid input
prev = m[i];
prev.leadstomore = 1;
- free(hmapkey(h, buf));
}
}
if(s[1] == '\0'){
- hmapset(&h, strdup(buf), &prev, nil);
+ hmaprepl(&h, strdup(buf), &prev, nil, 1);
} else {
- hmapset(&h, strdup(buf), &signalmore, nil);
+ hmaprepl(&h, strdup(buf), &signalmore, nil, 1);
}
j++;
}
@@ -425,7 +424,7 @@ opendict(Hmap *h, char *name)
kouho[i] = rest;
/* key is the base pointer; overwrites clean up for us */
- hmapset(&h, p, kouho, nil);
+ hmaprepl(&h, p, kouho, nil, 1);
}
Bterm(b);
return h;
@@ -537,7 +536,7 @@ dotrans(Hmap *dic)
p = kouho[0];
kouho[0] = kouho[i];
kouho[i] = p;
- hmapset(&dic, hmapkey(dic, v), kouho, nil);
+ hmapupd(&dic, v, kouho);
}
olen = okuri = joshi = 0;