gtl-parsley-ruby 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. data/CHANGELOG +3 -0
  2. data/README +32 -0
  3. data/Rakefile +57 -0
  4. data/VERSION +1 -0
  5. data/ext/cparsley.c +152 -0
  6. data/ext/extconf.rb +82 -0
  7. data/ext/parsley/.gitignore +32 -0
  8. data/ext/parsley/AUTHORS +1 -0
  9. data/ext/parsley/ChangeLog +0 -0
  10. data/ext/parsley/HACKING +4 -0
  11. data/ext/parsley/INSTALL +73 -0
  12. data/ext/parsley/INTRO +84 -0
  13. data/ext/parsley/Makefile.am +80 -0
  14. data/ext/parsley/Makefile.in +1009 -0
  15. data/ext/parsley/NEWS +0 -0
  16. data/ext/parsley/PAPER +36 -0
  17. data/ext/parsley/Portfile +18 -0
  18. data/ext/parsley/Portfile.in +17 -0
  19. data/ext/parsley/README.C-LANG +92 -0
  20. data/ext/parsley/README.markdown +1 -0
  21. data/ext/parsley/TODO +39 -0
  22. data/ext/parsley/VERSION +1 -0
  23. data/ext/parsley/aclocal.m4 +8918 -0
  24. data/ext/parsley/bootstrap.sh +6 -0
  25. data/ext/parsley/config.guess +1561 -0
  26. data/ext/parsley/config.sub +1686 -0
  27. data/ext/parsley/configure +13437 -0
  28. data/ext/parsley/configure.ac +46 -0
  29. data/ext/parsley/depcomp +630 -0
  30. data/ext/parsley/functions.c +368 -0
  31. data/ext/parsley/functions.h +19 -0
  32. data/ext/parsley/generate_bisect.sh +12 -0
  33. data/ext/parsley/hooks/prepare-commit-msg +16 -0
  34. data/ext/parsley/install-sh +520 -0
  35. data/ext/parsley/json-c-0.9/AUTHORS +2 -0
  36. data/ext/parsley/json-c-0.9/COPYING +19 -0
  37. data/ext/parsley/json-c-0.9/ChangeLog +103 -0
  38. data/ext/parsley/json-c-0.9/INSTALL +302 -0
  39. data/ext/parsley/json-c-0.9/Makefile.am +43 -0
  40. data/ext/parsley/json-c-0.9/Makefile.in +800 -0
  41. data/ext/parsley/json-c-0.9/NEWS +1 -0
  42. data/ext/parsley/json-c-0.9/README +20 -0
  43. data/ext/parsley/json-c-0.9/README-WIN32.html +57 -0
  44. data/ext/parsley/json-c-0.9/README.html +32 -0
  45. data/ext/parsley/json-c-0.9/aclocal.m4 +8909 -0
  46. data/ext/parsley/json-c-0.9/arraylist.c +94 -0
  47. data/ext/parsley/json-c-0.9/arraylist.h +53 -0
  48. data/ext/parsley/json-c-0.9/bits.h +27 -0
  49. data/ext/parsley/json-c-0.9/config.guess +1561 -0
  50. data/ext/parsley/json-c-0.9/config.h +125 -0
  51. data/ext/parsley/json-c-0.9/config.h.in +124 -0
  52. data/ext/parsley/json-c-0.9/config.h.win32 +94 -0
  53. data/ext/parsley/json-c-0.9/config.sub +1686 -0
  54. data/ext/parsley/json-c-0.9/configure +13084 -0
  55. data/ext/parsley/json-c-0.9/configure.in +33 -0
  56. data/ext/parsley/json-c-0.9/debug.c +98 -0
  57. data/ext/parsley/json-c-0.9/debug.h +50 -0
  58. data/ext/parsley/json-c-0.9/depcomp +630 -0
  59. data/ext/parsley/json-c-0.9/doc/html/annotated.html +40 -0
  60. data/ext/parsley/json-c-0.9/doc/html/arraylist_8h.html +240 -0
  61. data/ext/parsley/json-c-0.9/doc/html/bits_8h.html +150 -0
  62. data/ext/parsley/json-c-0.9/doc/html/classes.html +36 -0
  63. data/ext/parsley/json-c-0.9/doc/html/config_8h.html +612 -0
  64. data/ext/parsley/json-c-0.9/doc/html/debug_8h.html +392 -0
  65. data/ext/parsley/json-c-0.9/doc/html/doxygen.css +441 -0
  66. data/ext/parsley/json-c-0.9/doc/html/doxygen.png +0 -0
  67. data/ext/parsley/json-c-0.9/doc/html/files.html +42 -0
  68. data/ext/parsley/json-c-0.9/doc/html/functions.html +206 -0
  69. data/ext/parsley/json-c-0.9/doc/html/functions_vars.html +206 -0
  70. data/ext/parsley/json-c-0.9/doc/html/globals.html +459 -0
  71. data/ext/parsley/json-c-0.9/doc/html/globals_defs.html +202 -0
  72. data/ext/parsley/json-c-0.9/doc/html/globals_enum.html +50 -0
  73. data/ext/parsley/json-c-0.9/doc/html/globals_eval.html +135 -0
  74. data/ext/parsley/json-c-0.9/doc/html/globals_func.html +194 -0
  75. data/ext/parsley/json-c-0.9/doc/html/globals_type.html +70 -0
  76. data/ext/parsley/json-c-0.9/doc/html/globals_vars.html +50 -0
  77. data/ext/parsley/json-c-0.9/doc/html/index.html +25 -0
  78. data/ext/parsley/json-c-0.9/doc/html/json_8h.html +32 -0
  79. data/ext/parsley/json-c-0.9/doc/html/json__object_8h.html +1150 -0
  80. data/ext/parsley/json-c-0.9/doc/html/json__object__private_8h.html +75 -0
  81. data/ext/parsley/json-c-0.9/doc/html/json__tokener_8h.html +366 -0
  82. data/ext/parsley/json-c-0.9/doc/html/json__util_8h.html +106 -0
  83. data/ext/parsley/json-c-0.9/doc/html/linkhash_8h.html +740 -0
  84. data/ext/parsley/json-c-0.9/doc/html/printbuf_8h.html +214 -0
  85. data/ext/parsley/json-c-0.9/doc/html/structarray__list.html +104 -0
  86. data/ext/parsley/json-c-0.9/doc/html/structjson__object.html +141 -0
  87. data/ext/parsley/json-c-0.9/doc/html/structjson__object__iter.html +87 -0
  88. data/ext/parsley/json-c-0.9/doc/html/structjson__tokener.html +206 -0
  89. data/ext/parsley/json-c-0.9/doc/html/structjson__tokener__srec.html +104 -0
  90. data/ext/parsley/json-c-0.9/doc/html/structlh__entry.html +105 -0
  91. data/ext/parsley/json-c-0.9/doc/html/structlh__table.html +275 -0
  92. data/ext/parsley/json-c-0.9/doc/html/structprintbuf.html +87 -0
  93. data/ext/parsley/json-c-0.9/doc/html/tab_b.gif +0 -0
  94. data/ext/parsley/json-c-0.9/doc/html/tab_l.gif +0 -0
  95. data/ext/parsley/json-c-0.9/doc/html/tab_r.gif +0 -0
  96. data/ext/parsley/json-c-0.9/doc/html/tabs.css +105 -0
  97. data/ext/parsley/json-c-0.9/doc/html/unionjson__object_1_1data.html +140 -0
  98. data/ext/parsley/json-c-0.9/install-sh +520 -0
  99. data/ext/parsley/json-c-0.9/json.h +31 -0
  100. data/ext/parsley/json-c-0.9/json.pc +11 -0
  101. data/ext/parsley/json-c-0.9/json.pc.in +11 -0
  102. data/ext/parsley/json-c-0.9/json_object.c +512 -0
  103. data/ext/parsley/json-c-0.9/json_object.h +319 -0
  104. data/ext/parsley/json-c-0.9/json_object_private.h +52 -0
  105. data/ext/parsley/json-c-0.9/json_tokener.c +628 -0
  106. data/ext/parsley/json-c-0.9/json_tokener.h +98 -0
  107. data/ext/parsley/json-c-0.9/json_util.c +122 -0
  108. data/ext/parsley/json-c-0.9/json_util.h +31 -0
  109. data/ext/parsley/json-c-0.9/libjson.la +41 -0
  110. data/ext/parsley/json-c-0.9/libtool +8890 -0
  111. data/ext/parsley/json-c-0.9/linkhash.c +216 -0
  112. data/ext/parsley/json-c-0.9/linkhash.h +272 -0
  113. data/ext/parsley/json-c-0.9/ltmain.sh +8406 -0
  114. data/ext/parsley/json-c-0.9/missing +376 -0
  115. data/ext/parsley/json-c-0.9/printbuf.c +149 -0
  116. data/ext/parsley/json-c-0.9/printbuf.h +64 -0
  117. data/ext/parsley/json-c-0.9/stamp-h1 +1 -0
  118. data/ext/parsley/json-c-0.9/test1 +130 -0
  119. data/ext/parsley/json-c-0.9/test1.c +164 -0
  120. data/ext/parsley/json-c-0.9/test2 +130 -0
  121. data/ext/parsley/json-c-0.9/test2.c +20 -0
  122. data/ext/parsley/json-c-0.9/test3 +130 -0
  123. data/ext/parsley/json-c-0.9/test3.c +23 -0
  124. data/ext/parsley/libtool +8890 -0
  125. data/ext/parsley/ltmain.sh +8406 -0
  126. data/ext/parsley/missing +376 -0
  127. data/ext/parsley/parsed_xpath.c +168 -0
  128. data/ext/parsley/parsed_xpath.h +34 -0
  129. data/ext/parsley/parser.y +631 -0
  130. data/ext/parsley/parsley.c +793 -0
  131. data/ext/parsley/parsley.h +87 -0
  132. data/ext/parsley/parsley_main.c +185 -0
  133. data/ext/parsley/parsleyc_main.c +108 -0
  134. data/ext/parsley/regexp.c +359 -0
  135. data/ext/parsley/regexp.h +36 -0
  136. data/ext/parsley/scanner.l +221 -0
  137. data/ext/parsley/test/ambiguous.html +207 -0
  138. data/ext/parsley/test/ambiguous.json +1 -0
  139. data/ext/parsley/test/ambiguous.let +6 -0
  140. data/ext/parsley/test/array-regression.html +5 -0
  141. data/ext/parsley/test/array-regression.json +1 -0
  142. data/ext/parsley/test/array-regression.let +10 -0
  143. data/ext/parsley/test/backslash.html +5 -0
  144. data/ext/parsley/test/backslash.json +1 -0
  145. data/ext/parsley/test/backslash.let +3 -0
  146. data/ext/parsley/test/bang.html +17 -0
  147. data/ext/parsley/test/bang.json +1 -0
  148. data/ext/parsley/test/bang.let +6 -0
  149. data/ext/parsley/test/collate_regression.html +324 -0
  150. data/ext/parsley/test/collate_regression.json +1 -0
  151. data/ext/parsley/test/collate_regression.let +9 -0
  152. data/ext/parsley/test/contains.html +3 -0
  153. data/ext/parsley/test/contains.json +1 -0
  154. data/ext/parsley/test/contains.let +3 -0
  155. data/ext/parsley/test/content.html +13 -0
  156. data/ext/parsley/test/content.json +1 -0
  157. data/ext/parsley/test/content.let +7 -0
  158. data/ext/parsley/test/cool.html +575 -0
  159. data/ext/parsley/test/cool.json +1 -0
  160. data/ext/parsley/test/cool.let +9 -0
  161. data/ext/parsley/test/craigs-simple.html +207 -0
  162. data/ext/parsley/test/craigs-simple.json +1 -0
  163. data/ext/parsley/test/craigs-simple.let +6 -0
  164. data/ext/parsley/test/craigs.html +207 -0
  165. data/ext/parsley/test/craigs.json +1 -0
  166. data/ext/parsley/test/craigs.let +9 -0
  167. data/ext/parsley/test/crash.html +157 -0
  168. data/ext/parsley/test/crash.json +1 -0
  169. data/ext/parsley/test/crash.let +1 -0
  170. data/ext/parsley/test/css_attr.html +3 -0
  171. data/ext/parsley/test/css_attr.json +1 -0
  172. data/ext/parsley/test/css_attr.let +3 -0
  173. data/ext/parsley/test/default-namespace.json +1 -0
  174. data/ext/parsley/test/default-namespace.let +3 -0
  175. data/ext/parsley/test/default-namespace.xml +1493 -0
  176. data/ext/parsley/test/div.html +8 -0
  177. data/ext/parsley/test/div.json +1 -0
  178. data/ext/parsley/test/div.let +10 -0
  179. data/ext/parsley/test/empty.html +3 -0
  180. data/ext/parsley/test/empty.json +1 -0
  181. data/ext/parsley/test/empty.let +1 -0
  182. data/ext/parsley/test/emptyish.html +207 -0
  183. data/ext/parsley/test/emptyish.let +3 -0
  184. data/ext/parsley/test/fictional-opt.html +43 -0
  185. data/ext/parsley/test/fictional-opt.json +1 -0
  186. data/ext/parsley/test/fictional-opt.let +14 -0
  187. data/ext/parsley/test/fictional.html +43 -0
  188. data/ext/parsley/test/fictional.json +1 -0
  189. data/ext/parsley/test/fictional.let +14 -0
  190. data/ext/parsley/test/function-magic.html +9 -0
  191. data/ext/parsley/test/function-magic.json +1 -0
  192. data/ext/parsley/test/function-magic.let +8 -0
  193. data/ext/parsley/test/hn.html +32 -0
  194. data/ext/parsley/test/hn.json +1 -0
  195. data/ext/parsley/test/hn.let +8 -0
  196. data/ext/parsley/test/malformed-array.html +2329 -0
  197. data/ext/parsley/test/malformed-array.json +1 -0
  198. data/ext/parsley/test/malformed-array.let +22 -0
  199. data/ext/parsley/test/malformed-expr.html +2329 -0
  200. data/ext/parsley/test/malformed-expr.json +1 -0
  201. data/ext/parsley/test/malformed-expr.let +16 -0
  202. data/ext/parsley/test/malformed-function.html +845 -0
  203. data/ext/parsley/test/malformed-function.json +197 -0
  204. data/ext/parsley/test/malformed-function.let +8 -0
  205. data/ext/parsley/test/malformed-json.html +2329 -0
  206. data/ext/parsley/test/malformed-json.json +1 -0
  207. data/ext/parsley/test/malformed-json.let +6 -0
  208. data/ext/parsley/test/malformed-xpath.html +8 -0
  209. data/ext/parsley/test/malformed-xpath.json +1 -0
  210. data/ext/parsley/test/malformed-xpath.let +7 -0
  211. data/ext/parsley/test/match.json +1 -0
  212. data/ext/parsley/test/match.let +9 -0
  213. data/ext/parsley/test/match.xml +11 -0
  214. data/ext/parsley/test/math_ambiguity.html +9 -0
  215. data/ext/parsley/test/math_ambiguity.json +1 -0
  216. data/ext/parsley/test/math_ambiguity.let +5 -0
  217. data/ext/parsley/test/nth-regression.html +13 -0
  218. data/ext/parsley/test/nth-regression.json +1 -0
  219. data/ext/parsley/test/nth-regression.let +3 -0
  220. data/ext/parsley/test/optional.html +2328 -0
  221. data/ext/parsley/test/optional.json +1 -0
  222. data/ext/parsley/test/optional.let +8 -0
  223. data/ext/parsley/test/outer-xml.html +6 -0
  224. data/ext/parsley/test/outer-xml.json +1 -0
  225. data/ext/parsley/test/outer-xml.let +5 -0
  226. data/ext/parsley/test/position.html +8 -0
  227. data/ext/parsley/test/position.json +1 -0
  228. data/ext/parsley/test/position.let +6 -0
  229. data/ext/parsley/test/question_regressions.html +443 -0
  230. data/ext/parsley/test/question_regressions.json +1 -0
  231. data/ext/parsley/test/question_regressions.let +6 -0
  232. data/ext/parsley/test/quote.json +1 -0
  233. data/ext/parsley/test/quote.let +8 -0
  234. data/ext/parsley/test/quote.xml +11 -0
  235. data/ext/parsley/test/reddit.html +1 -0
  236. data/ext/parsley/test/reddit.json +1 -0
  237. data/ext/parsley/test/reddit.let +12 -0
  238. data/ext/parsley/test/remote-fail.json +1 -0
  239. data/ext/parsley/test/remote.html +3 -0
  240. data/ext/parsley/test/remote.json +1 -0
  241. data/ext/parsley/test/remote.let +4 -0
  242. data/ext/parsley/test/replace.json +1 -0
  243. data/ext/parsley/test/replace.let +9 -0
  244. data/ext/parsley/test/replace.xml +11 -0
  245. data/ext/parsley/test/scope.html +10 -0
  246. data/ext/parsley/test/scope.json +1 -0
  247. data/ext/parsley/test/scope.let +6 -0
  248. data/ext/parsley/test/segfault.html +5 -0
  249. data/ext/parsley/test/segfault.json +1 -0
  250. data/ext/parsley/test/segfault.let +9 -0
  251. data/ext/parsley/test/sg-wrap.html +5 -0
  252. data/ext/parsley/test/sg-wrap.json +1 -0
  253. data/ext/parsley/test/sg-wrap.let +3 -0
  254. data/ext/parsley/test/sg_off.html +5 -0
  255. data/ext/parsley/test/sg_off.json +1 -0
  256. data/ext/parsley/test/sg_off.let +3 -0
  257. data/ext/parsley/test/test.json +1 -0
  258. data/ext/parsley/test/test.let +6 -0
  259. data/ext/parsley/test/test.xml +11 -0
  260. data/ext/parsley/test/trivial.html +2329 -0
  261. data/ext/parsley/test/trivial.json +1 -0
  262. data/ext/parsley/test/trivial.let +4 -0
  263. data/ext/parsley/test/trivial2.html +2329 -0
  264. data/ext/parsley/test/trivial2.json +1 -0
  265. data/ext/parsley/test/trivial2.let +7 -0
  266. data/ext/parsley/test/unbang.html +17 -0
  267. data/ext/parsley/test/unbang.json +1 -0
  268. data/ext/parsley/test/unbang.let +6 -0
  269. data/ext/parsley/test/unicode.html +3 -0
  270. data/ext/parsley/test/unicode.json +1 -0
  271. data/ext/parsley/test/unicode.let +1 -0
  272. data/ext/parsley/test/whitespace.html +8 -0
  273. data/ext/parsley/test/whitespace.json +1 -0
  274. data/ext/parsley/test/whitespace.let +3 -0
  275. data/ext/parsley/test/whitespace_regression.html +4 -0
  276. data/ext/parsley/test/whitespace_regression.json +1 -0
  277. data/ext/parsley/test/whitespace_regression.let +3 -0
  278. data/ext/parsley/test/yelp-benchmark.rb +53 -0
  279. data/ext/parsley/test/yelp-home.html +1004 -0
  280. data/ext/parsley/test/yelp-home.json +1 -0
  281. data/ext/parsley/test/yelp-home.let +6 -0
  282. data/ext/parsley/test/yelp.html +2329 -0
  283. data/ext/parsley/test/yelp.json +1 -0
  284. data/ext/parsley/test/yelp.let +12 -0
  285. data/ext/parsley/test/youtube.html +1940 -0
  286. data/ext/parsley/test/youtube.let +11 -0
  287. data/ext/parsley/util.c +237 -0
  288. data/ext/parsley/util.h +34 -0
  289. data/ext/parsley/xml2json.c +47 -0
  290. data/ext/parsley/xml2json.h +14 -0
  291. data/ext/parsley/y.tab.h +222 -0
  292. data/ext/parsley/ylwrap +222 -0
  293. data/lib/parsley.rb +84 -0
  294. data/test/test_parsley.rb +120 -0
  295. data/test/yelp-benchmark.rb +53 -0
  296. data/test/yelp-home.html +1004 -0
  297. data/test/yelp-home.let +6 -0
  298. data/test/yelp.html +2329 -0
  299. metadata +366 -0
@@ -0,0 +1,740 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>json-c: linkhash.h File Reference</title>
4
+ <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
13
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
14
+ </ul>
15
+ </div>
16
+ <div class="tabs">
17
+ <ul>
18
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
19
+ <li><a href="globals.html"><span>Globals</span></a></li>
20
+ </ul>
21
+ </div>
22
+ </div>
23
+ <div class="contents">
24
+ <h1>linkhash.h File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
25
+ <tr><td></td></tr>
26
+ <tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
27
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html">lh_entry</a></td></tr>
28
+
29
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html">lh_table</a></td></tr>
30
+
31
+ <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
32
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#032f1bd115df254dda325437203ce5fb">LH_PRIME</a>&nbsp;&nbsp;&nbsp;0x9e370001UL</td></tr>
33
+
34
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#93fad7f8ae44575dc89c9567859972d2">LH_EMPTY</a>&nbsp;&nbsp;&nbsp;(void*)-1</td></tr>
35
+
36
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#c69428f2de0a6fb080b6fb373d506aa7">LH_FREED</a>&nbsp;&nbsp;&nbsp;(void*)-2</td></tr>
37
+
38
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#d7dd67da915065dce2c6f44cb03e2d82">lh_foreach</a>(table, entry)&nbsp;&nbsp;&nbsp;for(entry = table-&gt;head; entry; entry = entry-&gt;next)</td></tr>
39
+
40
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#bcbb0df08b4976d0649b826b6bacfca1">lh_foreach_safe</a>(table, entry, tmp)&nbsp;&nbsp;&nbsp;for(entry = table-&gt;head; entry &amp;&amp; ((tmp = entry-&gt;next) || 1); entry = tmp)</td></tr>
41
+
42
+ <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
43
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> )(struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td></tr>
44
+
45
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned long(&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> )(const void *k)</td></tr>
46
+
47
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> )(const void *k1, const void *k2)</td></tr>
48
+
49
+ <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
50
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#2e560f0d3e5a20f6b0bfa4049737db23">lh_ptr_hash</a> (const void *k)</td></tr>
51
+
52
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#6ce3cb97560072c40f5caeaba85f756a">lh_ptr_equal</a> (const void *k1, const void *k2)</td></tr>
53
+
54
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#1fcf495b9c4ce169630cb31f638b8435">lh_char_hash</a> (const void *k)</td></tr>
55
+
56
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#e4e9f21fb1a556c7a50c6b7ea61f2079">lh_char_equal</a> (const void *k1, const void *k2)</td></tr>
57
+
58
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#c3ba464ac43c083397b1f1d34f2ddf55">lh_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn, <a class="el" href="linkhash_8h.html#38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> *hash_fn, <a class="el" href="linkhash_8h.html#91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> *equal_fn)</td></tr>
59
+
60
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#0aaf11e11ee5b0925279a52eab04bc38">lh_kchar_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn)</td></tr>
61
+
62
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#705513954267a16cc1d40a284a7c441e">lh_kptr_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn)</td></tr>
63
+
64
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#81653acf740cf8c9fe672e6cd16df0cf">lh_table_free</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t)</td></tr>
65
+
66
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#22b897763cc34a98c21c7fe82d151004">lh_table_insert</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, void *k, const void *v)</td></tr>
67
+
68
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#d3b6ca2d967a6c3021ee6c39e014a918">lh_table_lookup_entry</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
69
+
70
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">const void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#49c27f18a174eaf126d1b7953df13cb1">lh_table_lookup</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
71
+
72
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#e5885a71c3457190fb1dc2d6e20dde3b">lh_table_delete_entry</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td></tr>
73
+
74
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#2fed2c78f70d229edb2d00775ffe593c">lh_table_delete</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
75
+
76
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#1294160fa0e80cee04cd745a401f43a4">lh_abort</a> (const char *msg,...)</td></tr>
77
+
78
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#5322eccf3394af7dc1ebb22af8f8c562">lh_table_resize</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, int new_size)</td></tr>
79
+
80
+ </table>
81
+ <hr><h2>Define Documentation</h2>
82
+ <a class="anchor" name="93fad7f8ae44575dc89c9567859972d2"></a><!-- doxytag: member="linkhash.h::LH_EMPTY" ref="93fad7f8ae44575dc89c9567859972d2" args="" -->
83
+ <div class="memitem">
84
+ <div class="memproto">
85
+ <table class="memname">
86
+ <tr>
87
+ <td class="memname">#define LH_EMPTY&nbsp;&nbsp;&nbsp;(void*)-1 </td>
88
+ </tr>
89
+ </table>
90
+ </div>
91
+ <div class="memdoc">
92
+
93
+ <p>
94
+ sentinel pointer value for empty slots
95
+ </div>
96
+ </div><p>
97
+ <a class="anchor" name="d7dd67da915065dce2c6f44cb03e2d82"></a><!-- doxytag: member="linkhash.h::lh_foreach" ref="d7dd67da915065dce2c6f44cb03e2d82" args="(table, entry)" -->
98
+ <div class="memitem">
99
+ <div class="memproto">
100
+ <table class="memname">
101
+ <tr>
102
+ <td class="memname">#define lh_foreach </td>
103
+ <td>(</td>
104
+ <td class="paramtype">table, <tr>
105
+ <td class="paramkey"></td>
106
+ <td></td>
107
+ <td class="paramtype">entry&nbsp;</td>
108
+ <td class="paramname"> </td>
109
+ <td>&nbsp;)&nbsp;</td>
110
+ <td>&nbsp;&nbsp;&nbsp;for(entry = table-&gt;head; entry; entry = entry-&gt;next)</td>
111
+ </tr>
112
+ </table>
113
+ </div>
114
+ <div class="memdoc">
115
+
116
+ <p>
117
+ Convenience list iterator.
118
+ </div>
119
+ </div><p>
120
+ <a class="anchor" name="bcbb0df08b4976d0649b826b6bacfca1"></a><!-- doxytag: member="linkhash.h::lh_foreach_safe" ref="bcbb0df08b4976d0649b826b6bacfca1" args="(table, entry, tmp)" -->
121
+ <div class="memitem">
122
+ <div class="memproto">
123
+ <table class="memname">
124
+ <tr>
125
+ <td class="memname">#define lh_foreach_safe </td>
126
+ <td>(</td>
127
+ <td class="paramtype">table, <tr>
128
+ <td class="paramkey"></td>
129
+ <td></td>
130
+ <td class="paramtype">entry, <tr>
131
+ <td class="paramkey"></td>
132
+ <td></td>
133
+ <td class="paramtype">tmp&nbsp;</td>
134
+ <td class="paramname"> </td>
135
+ <td>&nbsp;)&nbsp;</td>
136
+ <td>&nbsp;&nbsp;&nbsp;for(entry = table-&gt;head; entry &amp;&amp; ((tmp = entry-&gt;next) || 1); entry = tmp)</td>
137
+ </tr>
138
+ </table>
139
+ </div>
140
+ <div class="memdoc">
141
+
142
+ <p>
143
+ lh_foreach_safe allows calling of deletion routine while iterating.
144
+ </div>
145
+ </div><p>
146
+ <a class="anchor" name="c69428f2de0a6fb080b6fb373d506aa7"></a><!-- doxytag: member="linkhash.h::LH_FREED" ref="c69428f2de0a6fb080b6fb373d506aa7" args="" -->
147
+ <div class="memitem">
148
+ <div class="memproto">
149
+ <table class="memname">
150
+ <tr>
151
+ <td class="memname">#define LH_FREED&nbsp;&nbsp;&nbsp;(void*)-2 </td>
152
+ </tr>
153
+ </table>
154
+ </div>
155
+ <div class="memdoc">
156
+
157
+ <p>
158
+ sentinel pointer value for freed slots
159
+ </div>
160
+ </div><p>
161
+ <a class="anchor" name="032f1bd115df254dda325437203ce5fb"></a><!-- doxytag: member="linkhash.h::LH_PRIME" ref="032f1bd115df254dda325437203ce5fb" args="" -->
162
+ <div class="memitem">
163
+ <div class="memproto">
164
+ <table class="memname">
165
+ <tr>
166
+ <td class="memname">#define LH_PRIME&nbsp;&nbsp;&nbsp;0x9e370001UL </td>
167
+ </tr>
168
+ </table>
169
+ </div>
170
+ <div class="memdoc">
171
+
172
+ <p>
173
+ golden prime used in hash functions
174
+ </div>
175
+ </div><p>
176
+ <hr><h2>Typedef Documentation</h2>
177
+ <a class="anchor" name="671553d0ee3c2a123190ba0f8ed2b635"></a><!-- doxytag: member="linkhash.h::lh_entry_free_fn" ref="671553d0ee3c2a123190ba0f8ed2b635" args=")(struct lh_entry *e)" -->
178
+ <div class="memitem">
179
+ <div class="memproto">
180
+ <table class="memname">
181
+ <tr>
182
+ <td class="memname">typedef void( <a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a>)(struct <a class="el" href="structlh__entry.html">lh_entry</a> *e) </td>
183
+ </tr>
184
+ </table>
185
+ </div>
186
+ <div class="memdoc">
187
+
188
+ <p>
189
+ callback function prototypes
190
+ </div>
191
+ </div><p>
192
+ <a class="anchor" name="91fd85fc81b0c7c83c62f00e84729091"></a><!-- doxytag: member="linkhash.h::lh_equal_fn" ref="91fd85fc81b0c7c83c62f00e84729091" args=")(const void *k1, const void *k2)" -->
193
+ <div class="memitem">
194
+ <div class="memproto">
195
+ <table class="memname">
196
+ <tr>
197
+ <td class="memname">typedef int( <a class="el" href="linkhash_8h.html#91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a>)(const void *k1, const void *k2) </td>
198
+ </tr>
199
+ </table>
200
+ </div>
201
+ <div class="memdoc">
202
+
203
+ <p>
204
+ callback function prototypes
205
+ </div>
206
+ </div><p>
207
+ <a class="anchor" name="38bae27995dcfb6ee3fb109a9be229b2"></a><!-- doxytag: member="linkhash.h::lh_hash_fn" ref="38bae27995dcfb6ee3fb109a9be229b2" args=")(const void *k)" -->
208
+ <div class="memitem">
209
+ <div class="memproto">
210
+ <table class="memname">
211
+ <tr>
212
+ <td class="memname">typedef unsigned long( <a class="el" href="linkhash_8h.html#38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a>)(const void *k) </td>
213
+ </tr>
214
+ </table>
215
+ </div>
216
+ <div class="memdoc">
217
+
218
+ <p>
219
+ callback function prototypes
220
+ </div>
221
+ </div><p>
222
+ <hr><h2>Function Documentation</h2>
223
+ <a class="anchor" name="1294160fa0e80cee04cd745a401f43a4"></a><!-- doxytag: member="linkhash.h::lh_abort" ref="1294160fa0e80cee04cd745a401f43a4" args="(const char *msg,...)" -->
224
+ <div class="memitem">
225
+ <div class="memproto">
226
+ <table class="memname">
227
+ <tr>
228
+ <td class="memname">void lh_abort </td>
229
+ <td>(</td>
230
+ <td class="paramtype">const char *&nbsp;</td>
231
+ <td class="paramname"> <em>msg</em>, </td>
232
+ </tr>
233
+ <tr>
234
+ <td class="paramkey"></td>
235
+ <td></td>
236
+ <td class="paramtype">&nbsp;</td>
237
+ <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
238
+ </tr>
239
+ <tr>
240
+ <td></td>
241
+ <td>)</td>
242
+ <td></td><td></td><td></td>
243
+ </tr>
244
+ </table>
245
+ </div>
246
+ <div class="memdoc">
247
+
248
+ <p>
249
+
250
+ </div>
251
+ </div><p>
252
+ <a class="anchor" name="e4e9f21fb1a556c7a50c6b7ea61f2079"></a><!-- doxytag: member="linkhash.h::lh_char_equal" ref="e4e9f21fb1a556c7a50c6b7ea61f2079" args="(const void *k1, const void *k2)" -->
253
+ <div class="memitem">
254
+ <div class="memproto">
255
+ <table class="memname">
256
+ <tr>
257
+ <td class="memname">int lh_char_equal </td>
258
+ <td>(</td>
259
+ <td class="paramtype">const void *&nbsp;</td>
260
+ <td class="paramname"> <em>k1</em>, </td>
261
+ </tr>
262
+ <tr>
263
+ <td class="paramkey"></td>
264
+ <td></td>
265
+ <td class="paramtype">const void *&nbsp;</td>
266
+ <td class="paramname"> <em>k2</em></td><td>&nbsp;</td>
267
+ </tr>
268
+ <tr>
269
+ <td></td>
270
+ <td>)</td>
271
+ <td></td><td></td><td></td>
272
+ </tr>
273
+ </table>
274
+ </div>
275
+ <div class="memdoc">
276
+
277
+ <p>
278
+
279
+ </div>
280
+ </div><p>
281
+ <a class="anchor" name="1fcf495b9c4ce169630cb31f638b8435"></a><!-- doxytag: member="linkhash.h::lh_char_hash" ref="1fcf495b9c4ce169630cb31f638b8435" args="(const void *k)" -->
282
+ <div class="memitem">
283
+ <div class="memproto">
284
+ <table class="memname">
285
+ <tr>
286
+ <td class="memname">unsigned long lh_char_hash </td>
287
+ <td>(</td>
288
+ <td class="paramtype">const void *&nbsp;</td>
289
+ <td class="paramname"> <em>k</em> </td>
290
+ <td>&nbsp;)&nbsp;</td>
291
+ <td></td>
292
+ </tr>
293
+ </table>
294
+ </div>
295
+ <div class="memdoc">
296
+
297
+ <p>
298
+
299
+ </div>
300
+ </div><p>
301
+ <a class="anchor" name="0aaf11e11ee5b0925279a52eab04bc38"></a><!-- doxytag: member="linkhash.h::lh_kchar_table_new" ref="0aaf11e11ee5b0925279a52eab04bc38" args="(int size, const char *name, lh_entry_free_fn *free_fn)" -->
302
+ <div class="memitem">
303
+ <div class="memproto">
304
+ <table class="memname">
305
+ <tr>
306
+ <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_kchar_table_new </td>
307
+ <td>(</td>
308
+ <td class="paramtype">int&nbsp;</td>
309
+ <td class="paramname"> <em>size</em>, </td>
310
+ </tr>
311
+ <tr>
312
+ <td class="paramkey"></td>
313
+ <td></td>
314
+ <td class="paramtype">const char *&nbsp;</td>
315
+ <td class="paramname"> <em>name</em>, </td>
316
+ </tr>
317
+ <tr>
318
+ <td class="paramkey"></td>
319
+ <td></td>
320
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&nbsp;</td>
321
+ <td class="paramname"> <em>free_fn</em></td><td>&nbsp;</td>
322
+ </tr>
323
+ <tr>
324
+ <td></td>
325
+ <td>)</td>
326
+ <td></td><td></td><td><code> [read]</code></td>
327
+ </tr>
328
+ </table>
329
+ </div>
330
+ <div class="memdoc">
331
+
332
+ <p>
333
+ Convenience function to create a new linkhash table with char keys. <dl compact><dt><b>Parameters:</b></dt><dd>
334
+ <table border="0" cellspacing="2" cellpadding="0">
335
+ <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>initial table size. </td></tr>
336
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>table name. </td></tr>
337
+ <tr><td valign="top"></td><td valign="top"><em>free_fn</em>&nbsp;</td><td>callback function used to free memory for entries. </td></tr>
338
+ </table>
339
+ </dl>
340
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer onto the linkhash table. </dd></dl>
341
+
342
+ </div>
343
+ </div><p>
344
+ <a class="anchor" name="705513954267a16cc1d40a284a7c441e"></a><!-- doxytag: member="linkhash.h::lh_kptr_table_new" ref="705513954267a16cc1d40a284a7c441e" args="(int size, const char *name, lh_entry_free_fn *free_fn)" -->
345
+ <div class="memitem">
346
+ <div class="memproto">
347
+ <table class="memname">
348
+ <tr>
349
+ <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_kptr_table_new </td>
350
+ <td>(</td>
351
+ <td class="paramtype">int&nbsp;</td>
352
+ <td class="paramname"> <em>size</em>, </td>
353
+ </tr>
354
+ <tr>
355
+ <td class="paramkey"></td>
356
+ <td></td>
357
+ <td class="paramtype">const char *&nbsp;</td>
358
+ <td class="paramname"> <em>name</em>, </td>
359
+ </tr>
360
+ <tr>
361
+ <td class="paramkey"></td>
362
+ <td></td>
363
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&nbsp;</td>
364
+ <td class="paramname"> <em>free_fn</em></td><td>&nbsp;</td>
365
+ </tr>
366
+ <tr>
367
+ <td></td>
368
+ <td>)</td>
369
+ <td></td><td></td><td><code> [read]</code></td>
370
+ </tr>
371
+ </table>
372
+ </div>
373
+ <div class="memdoc">
374
+
375
+ <p>
376
+ Convenience function to create a new linkhash table with ptr keys. <dl compact><dt><b>Parameters:</b></dt><dd>
377
+ <table border="0" cellspacing="2" cellpadding="0">
378
+ <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>initial table size. </td></tr>
379
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>table name. </td></tr>
380
+ <tr><td valign="top"></td><td valign="top"><em>free_fn</em>&nbsp;</td><td>callback function used to free memory for entries. </td></tr>
381
+ </table>
382
+ </dl>
383
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer onto the linkhash table. </dd></dl>
384
+
385
+ </div>
386
+ </div><p>
387
+ <a class="anchor" name="6ce3cb97560072c40f5caeaba85f756a"></a><!-- doxytag: member="linkhash.h::lh_ptr_equal" ref="6ce3cb97560072c40f5caeaba85f756a" args="(const void *k1, const void *k2)" -->
388
+ <div class="memitem">
389
+ <div class="memproto">
390
+ <table class="memname">
391
+ <tr>
392
+ <td class="memname">int lh_ptr_equal </td>
393
+ <td>(</td>
394
+ <td class="paramtype">const void *&nbsp;</td>
395
+ <td class="paramname"> <em>k1</em>, </td>
396
+ </tr>
397
+ <tr>
398
+ <td class="paramkey"></td>
399
+ <td></td>
400
+ <td class="paramtype">const void *&nbsp;</td>
401
+ <td class="paramname"> <em>k2</em></td><td>&nbsp;</td>
402
+ </tr>
403
+ <tr>
404
+ <td></td>
405
+ <td>)</td>
406
+ <td></td><td></td><td></td>
407
+ </tr>
408
+ </table>
409
+ </div>
410
+ <div class="memdoc">
411
+
412
+ <p>
413
+
414
+ </div>
415
+ </div><p>
416
+ <a class="anchor" name="2e560f0d3e5a20f6b0bfa4049737db23"></a><!-- doxytag: member="linkhash.h::lh_ptr_hash" ref="2e560f0d3e5a20f6b0bfa4049737db23" args="(const void *k)" -->
417
+ <div class="memitem">
418
+ <div class="memproto">
419
+ <table class="memname">
420
+ <tr>
421
+ <td class="memname">unsigned long lh_ptr_hash </td>
422
+ <td>(</td>
423
+ <td class="paramtype">const void *&nbsp;</td>
424
+ <td class="paramname"> <em>k</em> </td>
425
+ <td>&nbsp;)&nbsp;</td>
426
+ <td></td>
427
+ </tr>
428
+ </table>
429
+ </div>
430
+ <div class="memdoc">
431
+
432
+ <p>
433
+ Pre-defined hash and equality functions
434
+ </div>
435
+ </div><p>
436
+ <a class="anchor" name="2fed2c78f70d229edb2d00775ffe593c"></a><!-- doxytag: member="linkhash.h::lh_table_delete" ref="2fed2c78f70d229edb2d00775ffe593c" args="(struct lh_table *t, const void *k)" -->
437
+ <div class="memitem">
438
+ <div class="memproto">
439
+ <table class="memname">
440
+ <tr>
441
+ <td class="memname">int lh_table_delete </td>
442
+ <td>(</td>
443
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
444
+ <td class="paramname"> <em>t</em>, </td>
445
+ </tr>
446
+ <tr>
447
+ <td class="paramkey"></td>
448
+ <td></td>
449
+ <td class="paramtype">const void *&nbsp;</td>
450
+ <td class="paramname"> <em>k</em></td><td>&nbsp;</td>
451
+ </tr>
452
+ <tr>
453
+ <td></td>
454
+ <td>)</td>
455
+ <td></td><td></td><td></td>
456
+ </tr>
457
+ </table>
458
+ </div>
459
+ <div class="memdoc">
460
+
461
+ <p>
462
+ Delete a record from the table. If a callback free function is provided then it is called for the for the item being deleted. <dl compact><dt><b>Parameters:</b></dt><dd>
463
+ <table border="0" cellspacing="2" cellpadding="0">
464
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to delete from. </td></tr>
465
+ <tr><td valign="top"></td><td valign="top"><em>k</em>&nbsp;</td><td>a pointer to the key to delete. </td></tr>
466
+ </table>
467
+ </dl>
468
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if the item was deleted. <p>
469
+ -1 if it was not found. </dd></dl>
470
+
471
+ </div>
472
+ </div><p>
473
+ <a class="anchor" name="e5885a71c3457190fb1dc2d6e20dde3b"></a><!-- doxytag: member="linkhash.h::lh_table_delete_entry" ref="e5885a71c3457190fb1dc2d6e20dde3b" args="(struct lh_table *t, struct lh_entry *e)" -->
474
+ <div class="memitem">
475
+ <div class="memproto">
476
+ <table class="memname">
477
+ <tr>
478
+ <td class="memname">int lh_table_delete_entry </td>
479
+ <td>(</td>
480
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
481
+ <td class="paramname"> <em>t</em>, </td>
482
+ </tr>
483
+ <tr>
484
+ <td class="paramkey"></td>
485
+ <td></td>
486
+ <td class="paramtype">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&nbsp;</td>
487
+ <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
488
+ </tr>
489
+ <tr>
490
+ <td></td>
491
+ <td>)</td>
492
+ <td></td><td></td><td></td>
493
+ </tr>
494
+ </table>
495
+ </div>
496
+ <div class="memdoc">
497
+
498
+ <p>
499
+ Delete a record from the table. If a callback free function is provided then it is called for the for the item being deleted. <dl compact><dt><b>Parameters:</b></dt><dd>
500
+ <table border="0" cellspacing="2" cellpadding="0">
501
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to delete from. </td></tr>
502
+ <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>a pointer to the entry to delete. </td></tr>
503
+ </table>
504
+ </dl>
505
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if the item was deleted. <p>
506
+ -1 if it was not found. </dd></dl>
507
+
508
+ </div>
509
+ </div><p>
510
+ <a class="anchor" name="81653acf740cf8c9fe672e6cd16df0cf"></a><!-- doxytag: member="linkhash.h::lh_table_free" ref="81653acf740cf8c9fe672e6cd16df0cf" args="(struct lh_table *t)" -->
511
+ <div class="memitem">
512
+ <div class="memproto">
513
+ <table class="memname">
514
+ <tr>
515
+ <td class="memname">void lh_table_free </td>
516
+ <td>(</td>
517
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
518
+ <td class="paramname"> <em>t</em> </td>
519
+ <td>&nbsp;)&nbsp;</td>
520
+ <td></td>
521
+ </tr>
522
+ </table>
523
+ </div>
524
+ <div class="memdoc">
525
+
526
+ <p>
527
+ Free a linkhash table. If a callback free function is provided then it is called for all entries in the table. <dl compact><dt><b>Parameters:</b></dt><dd>
528
+ <table border="0" cellspacing="2" cellpadding="0">
529
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>table to free. </td></tr>
530
+ </table>
531
+ </dl>
532
+
533
+ </div>
534
+ </div><p>
535
+ <a class="anchor" name="22b897763cc34a98c21c7fe82d151004"></a><!-- doxytag: member="linkhash.h::lh_table_insert" ref="22b897763cc34a98c21c7fe82d151004" args="(struct lh_table *t, void *k, const void *v)" -->
536
+ <div class="memitem">
537
+ <div class="memproto">
538
+ <table class="memname">
539
+ <tr>
540
+ <td class="memname">int lh_table_insert </td>
541
+ <td>(</td>
542
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
543
+ <td class="paramname"> <em>t</em>, </td>
544
+ </tr>
545
+ <tr>
546
+ <td class="paramkey"></td>
547
+ <td></td>
548
+ <td class="paramtype">void *&nbsp;</td>
549
+ <td class="paramname"> <em>k</em>, </td>
550
+ </tr>
551
+ <tr>
552
+ <td class="paramkey"></td>
553
+ <td></td>
554
+ <td class="paramtype">const void *&nbsp;</td>
555
+ <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
556
+ </tr>
557
+ <tr>
558
+ <td></td>
559
+ <td>)</td>
560
+ <td></td><td></td><td></td>
561
+ </tr>
562
+ </table>
563
+ </div>
564
+ <div class="memdoc">
565
+
566
+ <p>
567
+ Insert a record into the table. <dl compact><dt><b>Parameters:</b></dt><dd>
568
+ <table border="0" cellspacing="2" cellpadding="0">
569
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to insert into. </td></tr>
570
+ <tr><td valign="top"></td><td valign="top"><em>k</em>&nbsp;</td><td>a pointer to the key to insert. </td></tr>
571
+ <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>a pointer to the value to insert. </td></tr>
572
+ </table>
573
+ </dl>
574
+
575
+ </div>
576
+ </div><p>
577
+ <a class="anchor" name="49c27f18a174eaf126d1b7953df13cb1"></a><!-- doxytag: member="linkhash.h::lh_table_lookup" ref="49c27f18a174eaf126d1b7953df13cb1" args="(struct lh_table *t, const void *k)" -->
578
+ <div class="memitem">
579
+ <div class="memproto">
580
+ <table class="memname">
581
+ <tr>
582
+ <td class="memname">const void* lh_table_lookup </td>
583
+ <td>(</td>
584
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
585
+ <td class="paramname"> <em>t</em>, </td>
586
+ </tr>
587
+ <tr>
588
+ <td class="paramkey"></td>
589
+ <td></td>
590
+ <td class="paramtype">const void *&nbsp;</td>
591
+ <td class="paramname"> <em>k</em></td><td>&nbsp;</td>
592
+ </tr>
593
+ <tr>
594
+ <td></td>
595
+ <td>)</td>
596
+ <td></td><td></td><td></td>
597
+ </tr>
598
+ </table>
599
+ </div>
600
+ <div class="memdoc">
601
+
602
+ <p>
603
+ Lookup a record into the table <dl compact><dt><b>Parameters:</b></dt><dd>
604
+ <table border="0" cellspacing="2" cellpadding="0">
605
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to lookup </td></tr>
606
+ <tr><td valign="top"></td><td valign="top"><em>k</em>&nbsp;</td><td>a pointer to the key to lookup </td></tr>
607
+ </table>
608
+ </dl>
609
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the found value or NULL if it does not exist. </dd></dl>
610
+
611
+ </div>
612
+ </div><p>
613
+ <a class="anchor" name="d3b6ca2d967a6c3021ee6c39e014a918"></a><!-- doxytag: member="linkhash.h::lh_table_lookup_entry" ref="d3b6ca2d967a6c3021ee6c39e014a918" args="(struct lh_table *t, const void *k)" -->
614
+ <div class="memitem">
615
+ <div class="memproto">
616
+ <table class="memname">
617
+ <tr>
618
+ <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_table_lookup_entry </td>
619
+ <td>(</td>
620
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
621
+ <td class="paramname"> <em>t</em>, </td>
622
+ </tr>
623
+ <tr>
624
+ <td class="paramkey"></td>
625
+ <td></td>
626
+ <td class="paramtype">const void *&nbsp;</td>
627
+ <td class="paramname"> <em>k</em></td><td>&nbsp;</td>
628
+ </tr>
629
+ <tr>
630
+ <td></td>
631
+ <td>)</td>
632
+ <td></td><td></td><td><code> [read]</code></td>
633
+ </tr>
634
+ </table>
635
+ </div>
636
+ <div class="memdoc">
637
+
638
+ <p>
639
+ Lookup a record into the table. <dl compact><dt><b>Parameters:</b></dt><dd>
640
+ <table border="0" cellspacing="2" cellpadding="0">
641
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to lookup </td></tr>
642
+ <tr><td valign="top"></td><td valign="top"><em>k</em>&nbsp;</td><td>a pointer to the key to lookup </td></tr>
643
+ </table>
644
+ </dl>
645
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the record structure of the value or NULL if it does not exist. </dd></dl>
646
+
647
+ </div>
648
+ </div><p>
649
+ <a class="anchor" name="c3ba464ac43c083397b1f1d34f2ddf55"></a><!-- doxytag: member="linkhash.h::lh_table_new" ref="c3ba464ac43c083397b1f1d34f2ddf55" args="(int size, const char *name, lh_entry_free_fn *free_fn, lh_hash_fn *hash_fn, lh_equal_fn *equal_fn)" -->
650
+ <div class="memitem">
651
+ <div class="memproto">
652
+ <table class="memname">
653
+ <tr>
654
+ <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_table_new </td>
655
+ <td>(</td>
656
+ <td class="paramtype">int&nbsp;</td>
657
+ <td class="paramname"> <em>size</em>, </td>
658
+ </tr>
659
+ <tr>
660
+ <td class="paramkey"></td>
661
+ <td></td>
662
+ <td class="paramtype">const char *&nbsp;</td>
663
+ <td class="paramname"> <em>name</em>, </td>
664
+ </tr>
665
+ <tr>
666
+ <td class="paramkey"></td>
667
+ <td></td>
668
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&nbsp;</td>
669
+ <td class="paramname"> <em>free_fn</em>, </td>
670
+ </tr>
671
+ <tr>
672
+ <td class="paramkey"></td>
673
+ <td></td>
674
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> *&nbsp;</td>
675
+ <td class="paramname"> <em>hash_fn</em>, </td>
676
+ </tr>
677
+ <tr>
678
+ <td class="paramkey"></td>
679
+ <td></td>
680
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> *&nbsp;</td>
681
+ <td class="paramname"> <em>equal_fn</em></td><td>&nbsp;</td>
682
+ </tr>
683
+ <tr>
684
+ <td></td>
685
+ <td>)</td>
686
+ <td></td><td></td><td><code> [read]</code></td>
687
+ </tr>
688
+ </table>
689
+ </div>
690
+ <div class="memdoc">
691
+
692
+ <p>
693
+ Create a new linkhash table. <dl compact><dt><b>Parameters:</b></dt><dd>
694
+ <table border="0" cellspacing="2" cellpadding="0">
695
+ <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>initial table size. The table is automatically resized although this incurs a performance penalty. </td></tr>
696
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>the table name. </td></tr>
697
+ <tr><td valign="top"></td><td valign="top"><em>free_fn</em>&nbsp;</td><td>callback function used to free memory for entries when lh_table_free or lh_table_delete is called. If NULL is provided, then memory for keys and values must be freed by the caller. </td></tr>
698
+ <tr><td valign="top"></td><td valign="top"><em>hash_fn</em>&nbsp;</td><td>function used to hash keys. 2 standard ones are defined: lh_ptr_hash and lh_char_hash for hashing pointer values and C strings respectively. </td></tr>
699
+ <tr><td valign="top"></td><td valign="top"><em>equal_fn</em>&nbsp;</td><td>comparison function to compare keys. 2 standard ones defined: lh_ptr_hash and lh_char_hash for comparing pointer values and C strings respectively. </td></tr>
700
+ </table>
701
+ </dl>
702
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer onto the linkhash table. </dd></dl>
703
+
704
+ </div>
705
+ </div><p>
706
+ <a class="anchor" name="5322eccf3394af7dc1ebb22af8f8c562"></a><!-- doxytag: member="linkhash.h::lh_table_resize" ref="5322eccf3394af7dc1ebb22af8f8c562" args="(struct lh_table *t, int new_size)" -->
707
+ <div class="memitem">
708
+ <div class="memproto">
709
+ <table class="memname">
710
+ <tr>
711
+ <td class="memname">void lh_table_resize </td>
712
+ <td>(</td>
713
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
714
+ <td class="paramname"> <em>t</em>, </td>
715
+ </tr>
716
+ <tr>
717
+ <td class="paramkey"></td>
718
+ <td></td>
719
+ <td class="paramtype">int&nbsp;</td>
720
+ <td class="paramname"> <em>new_size</em></td><td>&nbsp;</td>
721
+ </tr>
722
+ <tr>
723
+ <td></td>
724
+ <td>)</td>
725
+ <td></td><td></td><td></td>
726
+ </tr>
727
+ </table>
728
+ </div>
729
+ <div class="memdoc">
730
+
731
+ <p>
732
+
733
+ </div>
734
+ </div><p>
735
+ </div>
736
+ <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jul 31 10:58:15 2009 for json-c by&nbsp;
737
+ <a href="http://www.doxygen.org/index.html">
738
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
739
+ </body>
740
+ </html>