glib2 3.2.1-x86-mingw32 → 3.2.2-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (927) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +16 -15
  3. data/ext/glib2/glib2.def +3 -0
  4. data/ext/glib2/rbglib-bytes.c +1 -0
  5. data/ext/glib2/rbglib.h +5 -1
  6. data/ext/glib2/rbgobj_object.c +30 -17
  7. data/ext/glib2/rbgobj_type.c +246 -130
  8. data/ext/glib2/rbgobject.h +12 -1
  9. data/lib/2.2/glib2.so +0 -0
  10. data/lib/2.3/glib2.so +0 -0
  11. data/lib/2.4/glib2.so +0 -0
  12. data/lib/2.5/glib2.so +0 -0
  13. data/lib/gnome2/rake/external-package.rb +32 -12
  14. data/lib/gnome2/rake/windows-binary-build-task.rb +53 -52
  15. data/lib/mkmf-gnome2.rb +0 -10
  16. data/vendor/local/bin/asn1Coding.exe +0 -0
  17. data/vendor/local/bin/asn1Decoding.exe +0 -0
  18. data/vendor/local/bin/asn1Parser.exe +0 -0
  19. data/vendor/local/bin/envsubst.exe +0 -0
  20. data/vendor/local/bin/gdbus-codegen +13 -1
  21. data/vendor/local/bin/gdbus.exe +0 -0
  22. data/vendor/local/bin/gettext.exe +0 -0
  23. data/vendor/local/bin/gio-querymodules.exe +0 -0
  24. data/vendor/local/bin/gio.exe +0 -0
  25. data/vendor/local/bin/glib-compile-resources.exe +0 -0
  26. data/vendor/local/bin/glib-compile-schemas.exe +0 -0
  27. data/vendor/local/bin/glib-genmarshal +25 -14
  28. data/vendor/local/bin/glib-gettextize +2 -2
  29. data/vendor/local/bin/glib-mkenums +48 -21
  30. data/vendor/local/bin/gobject-query.exe +0 -0
  31. data/vendor/local/bin/gresource.exe +0 -0
  32. data/vendor/local/bin/gsettings.exe +0 -0
  33. data/vendor/local/bin/gspawn-win32-helper-console.exe +0 -0
  34. data/vendor/local/bin/gspawn-win32-helper.exe +0 -0
  35. data/vendor/local/bin/iconv.exe +0 -0
  36. data/vendor/local/bin/idn2.exe +0 -0
  37. data/vendor/local/bin/libasprintf-0.dll +0 -0
  38. data/vendor/local/bin/libcharset-1.dll +0 -0
  39. data/vendor/local/bin/libffi-6.dll +0 -0
  40. data/vendor/local/bin/libgio-2.0-0.dll +0 -0
  41. data/vendor/local/bin/libglib-2.0-0.dll +0 -0
  42. data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
  43. data/vendor/local/bin/libgmp-10.dll +0 -0
  44. data/vendor/local/bin/libgnutls-30.dll +0 -0
  45. data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
  46. data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
  47. data/vendor/local/bin/libhogweed-4-2.dll +0 -0
  48. data/vendor/local/bin/libiconv-2.dll +0 -0
  49. data/vendor/local/bin/libidn2-0.dll +0 -0
  50. data/vendor/local/bin/libintl-8.dll +0 -0
  51. data/vendor/local/bin/libnettle-6-2.dll +0 -0
  52. data/vendor/local/bin/libp11-kit-0.dll +0 -0
  53. data/vendor/local/bin/libpcre-1.dll +0 -0
  54. data/vendor/local/bin/libpcrecpp-0.dll +0 -0
  55. data/vendor/local/bin/libpcreposix-0.dll +0 -0
  56. data/vendor/local/bin/libtasn1-6.dll +0 -0
  57. data/vendor/local/bin/nettle-hash.exe +0 -0
  58. data/vendor/local/bin/nettle-lfib-stream.exe +0 -0
  59. data/vendor/local/bin/nettle-pbkdf2.exe +0 -0
  60. data/vendor/local/bin/ngettext.exe +0 -0
  61. data/vendor/local/bin/p11-kit.exe +0 -0
  62. data/vendor/local/bin/pcre-config +1 -1
  63. data/vendor/local/bin/pcregrep.exe +0 -0
  64. data/vendor/local/bin/pcretest.exe +0 -0
  65. data/vendor/local/bin/pkcs1-conv.exe +0 -0
  66. data/vendor/local/bin/sexp-conv.exe +0 -0
  67. data/vendor/local/bin/trust.exe +0 -0
  68. data/vendor/local/include/glib-2.0/gio/gappinfo.h +6 -6
  69. data/vendor/local/include/glib-2.0/gio/gapplication.h +9 -1
  70. data/vendor/local/include/glib-2.0/gio/gdatainputstream.h +3 -3
  71. data/vendor/local/include/glib-2.0/gio/gdbusconnection.h +3 -3
  72. data/vendor/local/include/glib-2.0/gio/gdbuserror.h +2 -2
  73. data/vendor/local/include/glib-2.0/gio/gdbusnamewatching.h +1 -1
  74. data/vendor/local/include/glib-2.0/gio/gfile.h +21 -0
  75. data/vendor/local/include/glib-2.0/gio/gioenums.h +4 -4
  76. data/vendor/local/include/glib-2.0/gio/gioenumtypes.h +1 -1
  77. data/vendor/local/include/glib-2.0/gio/giomodule.h +24 -0
  78. data/vendor/local/include/glib-2.0/gio/giotypes.h +9 -3
  79. data/vendor/local/include/glib-2.0/gio/gmountoperation.h +15 -0
  80. data/vendor/local/include/glib-2.0/gio/gnetworkmonitor.h +1 -1
  81. data/vendor/local/include/glib-2.0/gio/gproxyaddressenumerator.h +1 -1
  82. data/vendor/local/include/glib-2.0/gio/gsocket.h +12 -0
  83. data/vendor/local/include/glib-2.0/gio/gsocketaddressenumerator.h +1 -1
  84. data/vendor/local/include/glib-2.0/gio/gsocketconnectable.h +1 -1
  85. data/vendor/local/include/glib-2.0/gio/gsocketlistener.h +1 -1
  86. data/vendor/local/include/glib-2.0/gio/gtlsclientconnection.h +2 -2
  87. data/vendor/local/include/glib-2.0/glib/gatomic.h +23 -23
  88. data/vendor/local/include/glib-2.0/glib/gbacktrace.h +3 -0
  89. data/vendor/local/include/glib-2.0/glib/gconvert.h +9 -3
  90. data/vendor/local/include/glib-2.0/glib/gdate.h +2 -0
  91. data/vendor/local/include/glib-2.0/glib/gdatetime.h +4 -0
  92. data/vendor/local/include/glib-2.0/glib/gfileutils.h +4 -8
  93. data/vendor/local/include/glib-2.0/glib/gkeyfile.h +5 -0
  94. data/vendor/local/include/glib-2.0/glib/gmacros.h +37 -6
  95. data/vendor/local/include/glib-2.0/glib/gmain.h +44 -12
  96. data/vendor/local/include/glib-2.0/glib/gmem.h +5 -4
  97. data/vendor/local/include/glib-2.0/glib/gmessages.h +69 -68
  98. data/vendor/local/include/glib-2.0/glib/gregex.h +3 -3
  99. data/vendor/local/include/glib-2.0/glib/gspawn.h +1 -1
  100. data/vendor/local/include/glib-2.0/glib/gtestutils.h +14 -5
  101. data/vendor/local/include/glib-2.0/glib/gtypes.h +2 -2
  102. data/vendor/local/include/glib-2.0/glib/gunicode.h +4 -4
  103. data/vendor/local/include/glib-2.0/glib/gutils.h +3 -1
  104. data/vendor/local/include/glib-2.0/glib/gversionmacros.h +24 -0
  105. data/vendor/local/include/glib-2.0/gobject/gobject.h +111 -4
  106. data/vendor/local/include/glib-2.0/gobject/gtype.h +8 -8
  107. data/vendor/local/include/glib-2.0/gobject/gtypemodule.h +1 -1
  108. data/vendor/local/include/glib-2.0/gobject/gvalue.h +2 -0
  109. data/vendor/local/include/idn2.h +347 -0
  110. data/vendor/local/include/libtasn1.h +1 -1
  111. data/vendor/local/include/nettle/nettle-stdint.h +1 -1
  112. data/vendor/local/include/p11-kit-1/p11-kit/iter.h +2 -0
  113. data/vendor/local/include/p11-kit-1/p11-kit/pkcs11.h +27 -6
  114. data/vendor/local/include/p11-kit-1/p11-kit/uri.h +12 -0
  115. data/vendor/local/lib/charset.alias +1 -1
  116. data/vendor/local/lib/gio/modules/libgiognutls.dll +0 -0
  117. data/vendor/local/lib/glib-2.0/include/glibconfig.h +7 -2
  118. data/vendor/local/lib/libasprintf.a +0 -0
  119. data/vendor/local/lib/libasprintf.dll.a +0 -0
  120. data/vendor/local/lib/libasprintf.la +2 -2
  121. data/vendor/local/lib/libcharset.a +0 -0
  122. data/vendor/local/lib/libcharset.dll.a +0 -0
  123. data/vendor/local/lib/libcharset.la +2 -2
  124. data/vendor/local/lib/libffi.a +0 -0
  125. data/vendor/local/lib/libffi.dll.a +0 -0
  126. data/vendor/local/lib/libffi.la +2 -2
  127. data/vendor/local/lib/libgio-2.0.dll.a +0 -0
  128. data/vendor/local/lib/libgio-2.0.la +6 -6
  129. data/vendor/local/lib/libglib-2.0.dll.a +0 -0
  130. data/vendor/local/lib/libglib-2.0.la +6 -6
  131. data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
  132. data/vendor/local/lib/libgmodule-2.0.la +6 -6
  133. data/vendor/local/lib/libgmp.dll.a +0 -0
  134. data/vendor/local/lib/libgmp.la +2 -2
  135. data/vendor/local/lib/libgnutls.dll.a +0 -0
  136. data/vendor/local/lib/libgnutls.la +2 -2
  137. data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
  138. data/vendor/local/lib/libgobject-2.0.la +6 -6
  139. data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
  140. data/vendor/local/lib/libgthread-2.0.la +6 -6
  141. data/vendor/local/lib/libhogweed.a +0 -0
  142. data/vendor/local/lib/libhogweed.dll.a +0 -0
  143. data/vendor/local/lib/libiconv.dll.a +0 -0
  144. data/vendor/local/lib/libiconv.la +2 -2
  145. data/vendor/local/lib/libidn2.a +0 -0
  146. data/vendor/local/lib/libidn2.dll.a +0 -0
  147. data/vendor/local/lib/libidn2.la +41 -0
  148. data/vendor/local/lib/libintl.a +0 -0
  149. data/vendor/local/lib/libintl.dll.a +0 -0
  150. data/vendor/local/lib/libintl.la +2 -2
  151. data/vendor/local/lib/libnettle.a +0 -0
  152. data/vendor/local/lib/libnettle.dll.a +0 -0
  153. data/vendor/local/lib/libp11-kit.dll.a +0 -0
  154. data/vendor/local/lib/libp11-kit.la +6 -6
  155. data/vendor/local/lib/libpcre.a +0 -0
  156. data/vendor/local/lib/libpcre.dll.a +0 -0
  157. data/vendor/local/lib/libpcre.la +2 -2
  158. data/vendor/local/lib/libpcrecpp.a +0 -0
  159. data/vendor/local/lib/libpcrecpp.dll.a +0 -0
  160. data/vendor/local/lib/libpcrecpp.la +2 -2
  161. data/vendor/local/lib/libpcreposix.a +0 -0
  162. data/vendor/local/lib/libpcreposix.dll.a +0 -0
  163. data/vendor/local/lib/libpcreposix.la +2 -2
  164. data/vendor/local/lib/libtasn1.a +0 -0
  165. data/vendor/local/lib/libtasn1.dll.a +0 -0
  166. data/vendor/local/lib/libtasn1.la +3 -3
  167. data/vendor/local/lib/pkcs11/p11-kit-trust.dll +0 -0
  168. data/vendor/local/lib/pkcs11/p11-kit-trust.dll.a +0 -0
  169. data/vendor/local/lib/pkcs11/p11-kit-trust.la +6 -6
  170. data/vendor/local/lib/pkgconfig/gio-2.0.pc +3 -3
  171. data/vendor/local/lib/pkgconfig/gio-windows-2.0.pc +2 -2
  172. data/vendor/local/lib/pkgconfig/glib-2.0.pc +3 -3
  173. data/vendor/local/lib/pkgconfig/gmodule-2.0.pc +2 -2
  174. data/vendor/local/lib/pkgconfig/gmodule-export-2.0.pc +2 -2
  175. data/vendor/local/lib/pkgconfig/gmodule-no-export-2.0.pc +2 -2
  176. data/vendor/local/lib/pkgconfig/gnutls.pc +3 -3
  177. data/vendor/local/lib/pkgconfig/gobject-2.0.pc +3 -3
  178. data/vendor/local/lib/pkgconfig/gthread-2.0.pc +2 -2
  179. data/vendor/local/lib/pkgconfig/hogweed.pc +1 -1
  180. data/vendor/local/lib/pkgconfig/libffi.pc +1 -1
  181. data/vendor/local/lib/pkgconfig/libidn2.pc +11 -0
  182. data/vendor/local/lib/pkgconfig/libpcre.pc +1 -1
  183. data/vendor/local/lib/pkgconfig/libpcrecpp.pc +1 -1
  184. data/vendor/local/lib/pkgconfig/libpcreposix.pc +1 -1
  185. data/vendor/local/lib/pkgconfig/libtasn1.pc +2 -2
  186. data/vendor/local/lib/pkgconfig/nettle.pc +1 -1
  187. data/vendor/local/lib/pkgconfig/p11-kit-1.pc +3 -2
  188. data/vendor/local/libexec/p11-kit/p11-kit-remote.exe +0 -0
  189. data/vendor/local/{lib → libexec}/p11-kit/trust-extract-compat +0 -0
  190. data/vendor/local/share/aclocal/glib-2.0.m4 +4 -1
  191. data/vendor/local/share/aclocal/glib-gettext.m4 +4 -1
  192. data/vendor/local/share/aclocal/gsettings.m4 +3 -0
  193. data/vendor/local/share/bash-completion/completions/gsettings +6 -2
  194. data/vendor/local/share/doc/gettext/gettext.1.html +1 -1
  195. data/vendor/local/share/doc/gettext/ngettext.1.html +1 -1
  196. data/vendor/local/share/gdb/auto-load/home/vagrant/{ruby-gnome2.win32/glib2/vendor/local/lib/libglib-2.0.so.0.5400.1-gdb.py → ruby-gnome2/glib2/vendor/local/lib/libglib-2.0.so.0.5600.0-gdb.py} +1 -1
  197. data/vendor/local/share/gdb/auto-load/home/vagrant/{ruby-gnome2.win32/glib2/vendor/local/lib/libgobject-2.0.so.0.5400.1-gdb.py → ruby-gnome2/glib2/vendor/local/lib/libgobject-2.0.so.0.5600.0-gdb.py} +1 -1
  198. data/vendor/local/share/glib-2.0/codegen/__init__.pyc +0 -0
  199. data/vendor/local/share/glib-2.0/codegen/__init__.pyo +0 -0
  200. data/vendor/local/share/glib-2.0/codegen/codegen.py +2392 -2369
  201. data/vendor/local/share/glib-2.0/codegen/codegen.pyc +0 -0
  202. data/vendor/local/share/glib-2.0/codegen/codegen.pyo +0 -0
  203. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.py +3 -5
  204. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyc +0 -0
  205. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyo +0 -0
  206. data/vendor/local/share/glib-2.0/codegen/codegen_main.py +100 -55
  207. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyc +0 -0
  208. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyo +0 -0
  209. data/vendor/local/share/glib-2.0/codegen/config.py +1 -1
  210. data/vendor/local/share/glib-2.0/codegen/config.pyc +0 -0
  211. data/vendor/local/share/glib-2.0/codegen/config.pyo +0 -0
  212. data/vendor/local/share/glib-2.0/codegen/dbustypes.py +9 -2
  213. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyc +0 -0
  214. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyo +0 -0
  215. data/vendor/local/share/glib-2.0/codegen/parser.py +3 -2
  216. data/vendor/local/share/glib-2.0/codegen/parser.pyc +0 -0
  217. data/vendor/local/share/glib-2.0/codegen/parser.pyo +0 -0
  218. data/vendor/local/share/glib-2.0/codegen/utils.py +40 -0
  219. data/vendor/local/share/glib-2.0/codegen/utils.pyc +0 -0
  220. data/vendor/local/share/glib-2.0/codegen/utils.pyo +0 -0
  221. data/vendor/local/share/glib-2.0/schemas/gschema.dtd +3 -2
  222. data/vendor/local/share/gtk-doc/html/gio/GAction.html +11 -11
  223. data/vendor/local/share/gtk-doc/html/gio/GActionGroup.html +14 -14
  224. data/vendor/local/share/gtk-doc/html/gio/GActionMap.html +31 -31
  225. data/vendor/local/share/gtk-doc/html/gio/GAppInfo.html +71 -68
  226. data/vendor/local/share/gtk-doc/html/gio/GAppInfoMonitor.html +4 -4
  227. data/vendor/local/share/gtk-doc/html/gio/GApplication.html +162 -25
  228. data/vendor/local/share/gtk-doc/html/gio/GApplicationCommandLine.html +87 -89
  229. data/vendor/local/share/gtk-doc/html/gio/GAsyncInitable.html +74 -74
  230. data/vendor/local/share/gtk-doc/html/gio/GAsyncResult.html +58 -49
  231. data/vendor/local/share/gtk-doc/html/gio/GBufferedInputStream.html +10 -10
  232. data/vendor/local/share/gtk-doc/html/gio/GBufferedOutputStream.html +2 -2
  233. data/vendor/local/share/gtk-doc/html/gio/GBytesIcon.html +4 -4
  234. data/vendor/local/share/gtk-doc/html/gio/GCancellable.html +27 -27
  235. data/vendor/local/share/gtk-doc/html/gio/GCharsetConverter.html +2 -2
  236. data/vendor/local/share/gtk-doc/html/gio/GConverter.html +7 -7
  237. data/vendor/local/share/gtk-doc/html/gio/GCredentials.html +3 -3
  238. data/vendor/local/share/gtk-doc/html/gio/GDBusActionGroup.html +7 -5
  239. data/vendor/local/share/gtk-doc/html/gio/GDBusAuthObserver.html +22 -22
  240. data/vendor/local/share/gtk-doc/html/gio/GDBusConnection.html +148 -141
  241. data/vendor/local/share/gtk-doc/html/gio/GDBusInterface.html +7 -7
  242. data/vendor/local/share/gtk-doc/html/gio/GDBusInterfaceSkeleton.html +7 -7
  243. data/vendor/local/share/gtk-doc/html/gio/GDBusMenuModel.html +7 -5
  244. data/vendor/local/share/gtk-doc/html/gio/GDBusMessage.html +40 -40
  245. data/vendor/local/share/gtk-doc/html/gio/GDBusMethodInvocation.html +26 -26
  246. data/vendor/local/share/gtk-doc/html/gio/GDBusObject.html +5 -5
  247. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManager.html +6 -6
  248. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManagerClient.html +25 -24
  249. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectManagerServer.html +4 -4
  250. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectProxy.html +3 -3
  251. data/vendor/local/share/gtk-doc/html/gio/GDBusObjectSkeleton.html +2 -2
  252. data/vendor/local/share/gtk-doc/html/gio/GDBusProxy.html +87 -73
  253. data/vendor/local/share/gtk-doc/html/gio/GDBusServer.html +4 -4
  254. data/vendor/local/share/gtk-doc/html/gio/GDataInputStream.html +55 -38
  255. data/vendor/local/share/gtk-doc/html/gio/GDataOutputStream.html +10 -10
  256. data/vendor/local/share/gtk-doc/html/gio/GDatagramBased.html +11 -11
  257. data/vendor/local/share/gtk-doc/html/gio/GDrive.html +20 -20
  258. data/vendor/local/share/gtk-doc/html/gio/GDtlsClientConnection.html +7 -7
  259. data/vendor/local/share/gtk-doc/html/gio/GDtlsConnection.html +16 -16
  260. data/vendor/local/share/gtk-doc/html/gio/GDtlsServerConnection.html +5 -5
  261. data/vendor/local/share/gtk-doc/html/gio/GEmblem.html +4 -4
  262. data/vendor/local/share/gtk-doc/html/gio/GEmblemedIcon.html +6 -6
  263. data/vendor/local/share/gtk-doc/html/gio/GFile.html +503 -218
  264. data/vendor/local/share/gtk-doc/html/gio/GFileDescriptorBased.html +4 -4
  265. data/vendor/local/share/gtk-doc/html/gio/GFileEnumerator.html +31 -31
  266. data/vendor/local/share/gtk-doc/html/gio/GFileIOStream.html +8 -8
  267. data/vendor/local/share/gtk-doc/html/gio/GFileIcon.html +4 -4
  268. data/vendor/local/share/gtk-doc/html/gio/GFileInfo.html +20 -20
  269. data/vendor/local/share/gtk-doc/html/gio/GFileInputStream.html +8 -8
  270. data/vendor/local/share/gtk-doc/html/gio/GFileMonitor.html +3 -3
  271. data/vendor/local/share/gtk-doc/html/gio/GFileOutputStream.html +4 -4
  272. data/vendor/local/share/gtk-doc/html/gio/GFilenameCompleter.html +4 -4
  273. data/vendor/local/share/gtk-doc/html/gio/GFilterInputStream.html +3 -3
  274. data/vendor/local/share/gtk-doc/html/gio/GFilterOutputStream.html +3 -3
  275. data/vendor/local/share/gtk-doc/html/gio/GIOModule.html +32 -11
  276. data/vendor/local/share/gtk-doc/html/gio/GIOStream.html +11 -11
  277. data/vendor/local/share/gtk-doc/html/gio/GIcon.html +11 -11
  278. data/vendor/local/share/gtk-doc/html/gio/GInetAddress.html +3 -3
  279. data/vendor/local/share/gtk-doc/html/gio/GInetAddressMask.html +3 -3
  280. data/vendor/local/share/gtk-doc/html/gio/GInetSocketAddress.html +3 -3
  281. data/vendor/local/share/gtk-doc/html/gio/GInitable.html +8 -8
  282. data/vendor/local/share/gtk-doc/html/gio/GInputStream.html +30 -30
  283. data/vendor/local/share/gtk-doc/html/gio/GListModel.html +6 -6
  284. data/vendor/local/share/gtk-doc/html/gio/GListStore.html +10 -10
  285. data/vendor/local/share/gtk-doc/html/gio/GLoadableIcon.html +11 -11
  286. data/vendor/local/share/gtk-doc/html/gio/GMemoryInputStream.html +6 -6
  287. data/vendor/local/share/gtk-doc/html/gio/GMemoryOutputStream.html +15 -15
  288. data/vendor/local/share/gtk-doc/html/gio/GMenu.html +57 -57
  289. data/vendor/local/share/gtk-doc/html/gio/GMenuModel.html +14 -14
  290. data/vendor/local/share/gtk-doc/html/gio/GMount.html +31 -29
  291. data/vendor/local/share/gtk-doc/html/gio/GMountOperation.html +9 -9
  292. data/vendor/local/share/gtk-doc/html/gio/GNetworkAddress.html +9 -9
  293. data/vendor/local/share/gtk-doc/html/gio/GNetworkMonitor.html +12 -18
  294. data/vendor/local/share/gtk-doc/html/gio/GNetworkService.html +3 -3
  295. data/vendor/local/share/gtk-doc/html/gio/GNotification.html +12 -8
  296. data/vendor/local/share/gtk-doc/html/gio/GOutputStream.html +40 -40
  297. data/vendor/local/share/gtk-doc/html/gio/GPermission.html +6 -6
  298. data/vendor/local/share/gtk-doc/html/gio/GPollableInputStream.html +7 -7
  299. data/vendor/local/share/gtk-doc/html/gio/GPollableOutputStream.html +11 -7
  300. data/vendor/local/share/gtk-doc/html/gio/GPropertyAction.html +7 -7
  301. data/vendor/local/share/gtk-doc/html/gio/GProxy.html +10 -10
  302. data/vendor/local/share/gtk-doc/html/gio/GProxyAddress.html +4 -4
  303. data/vendor/local/share/gtk-doc/html/gio/GProxyAddressEnumerator.html +170 -0
  304. data/vendor/local/share/gtk-doc/html/gio/GProxyResolver.html +11 -11
  305. data/vendor/local/share/gtk-doc/html/gio/GRemoteActionGroup.html +4 -4
  306. data/vendor/local/share/gtk-doc/html/gio/GResolver.html +25 -25
  307. data/vendor/local/share/gtk-doc/html/gio/GResource.html +37 -33
  308. data/vendor/local/share/gtk-doc/html/gio/GSeekable.html +16 -9
  309. data/vendor/local/share/gtk-doc/html/gio/GSettings.html +99 -96
  310. data/vendor/local/share/gtk-doc/html/gio/GSettingsBackend.html +17 -17
  311. data/vendor/local/share/gtk-doc/html/gio/GSimpleAction.html +18 -18
  312. data/vendor/local/share/gtk-doc/html/gio/GSimpleActionGroup.html +4 -4
  313. data/vendor/local/share/gtk-doc/html/gio/GSimpleAsyncResult.html +107 -106
  314. data/vendor/local/share/gtk-doc/html/gio/GSimpleIOStream.html +2 -2
  315. data/vendor/local/share/gtk-doc/html/gio/GSimplePermission.html +2 -2
  316. data/vendor/local/share/gtk-doc/html/gio/GSimpleProxyResolver.html +4 -4
  317. data/vendor/local/share/gtk-doc/html/gio/GSocket.html +209 -53
  318. data/vendor/local/share/gtk-doc/html/gio/GSocketAddress.html +3 -3
  319. data/vendor/local/share/gtk-doc/html/gio/GSocketAddressEnumerator.html +291 -0
  320. data/vendor/local/share/gtk-doc/html/gio/GSocketClient.html +31 -31
  321. data/vendor/local/share/gtk-doc/html/gio/GSocketConnectable.html +67 -344
  322. data/vendor/local/share/gtk-doc/html/gio/GSocketConnection.html +10 -10
  323. data/vendor/local/share/gtk-doc/html/gio/GSocketControlMessage.html +5 -5
  324. data/vendor/local/share/gtk-doc/html/gio/GSocketListener.html +23 -23
  325. data/vendor/local/share/gtk-doc/html/gio/GSocketService.html +3 -3
  326. data/vendor/local/share/gtk-doc/html/gio/GSrvTarget.html +4 -4
  327. data/vendor/local/share/gtk-doc/html/gio/GSubprocess.html +33 -33
  328. data/vendor/local/share/gtk-doc/html/gio/GSubprocessLauncher.html +25 -20
  329. data/vendor/local/share/gtk-doc/html/gio/GTask.html +360 -357
  330. data/vendor/local/share/gtk-doc/html/gio/GTcpConnection.html +2 -2
  331. data/vendor/local/share/gtk-doc/html/gio/GTcpWrapperConnection.html +3 -3
  332. data/vendor/local/share/gtk-doc/html/gio/GTestDBus.html +11 -11
  333. data/vendor/local/share/gtk-doc/html/gio/GThemedIcon.html +23 -23
  334. data/vendor/local/share/gtk-doc/html/gio/GThreadedSocketService.html +2 -2
  335. data/vendor/local/share/gtk-doc/html/gio/GTlsBackend.html +7 -7
  336. data/vendor/local/share/gtk-doc/html/gio/GTlsCertificate.html +10 -10
  337. data/vendor/local/share/gtk-doc/html/gio/GTlsClientConnection.html +40 -23
  338. data/vendor/local/share/gtk-doc/html/gio/GTlsConnection.html +9 -9
  339. data/vendor/local/share/gtk-doc/html/gio/GTlsDatabase.html +34 -34
  340. data/vendor/local/share/gtk-doc/html/gio/GTlsFileDatabase.html +5 -5
  341. data/vendor/local/share/gtk-doc/html/gio/GTlsInteraction.html +6 -6
  342. data/vendor/local/share/gtk-doc/html/gio/GTlsPassword.html +9 -9
  343. data/vendor/local/share/gtk-doc/html/gio/GTlsServerConnection.html +5 -5
  344. data/vendor/local/share/gtk-doc/html/gio/GUnixConnection.html +17 -17
  345. data/vendor/local/share/gtk-doc/html/gio/GUnixCredentialsMessage.html +3 -3
  346. data/vendor/local/share/gtk-doc/html/gio/GUnixFDList.html +8 -8
  347. data/vendor/local/share/gtk-doc/html/gio/GUnixFDMessage.html +6 -6
  348. data/vendor/local/share/gtk-doc/html/gio/GUnixInputStream.html +3 -3
  349. data/vendor/local/share/gtk-doc/html/gio/GUnixOutputStream.html +3 -3
  350. data/vendor/local/share/gtk-doc/html/gio/GUnixSocketAddress.html +5 -5
  351. data/vendor/local/share/gtk-doc/html/gio/GVfs.html +15 -15
  352. data/vendor/local/share/gtk-doc/html/gio/GVolume.html +27 -27
  353. data/vendor/local/share/gtk-doc/html/gio/GVolumeMonitor.html +12 -10
  354. data/vendor/local/share/gtk-doc/html/gio/GZlibCompressor.html +4 -4
  355. data/vendor/local/share/gtk-doc/html/gio/GZlibDecompressor.html +3 -3
  356. data/vendor/local/share/gtk-doc/html/gio/annotation-glossary.html +10 -3
  357. data/vendor/local/share/gtk-doc/html/gio/api-index-full.html +71 -11
  358. data/vendor/local/share/gtk-doc/html/gio/application.html +2 -2
  359. data/vendor/local/share/gtk-doc/html/gio/async.html +2 -2
  360. data/vendor/local/share/gtk-doc/html/gio/ch01.html +2 -2
  361. data/vendor/local/share/gtk-doc/html/gio/ch02.html +2 -2
  362. data/vendor/local/share/gtk-doc/html/gio/ch03.html +2 -2
  363. data/vendor/local/share/gtk-doc/html/gio/ch32.html +2 -2
  364. data/vendor/local/share/gtk-doc/html/gio/ch33.html +31 -31
  365. data/vendor/local/share/gtk-doc/html/gio/ch33s02.html +2 -2
  366. data/vendor/local/share/gtk-doc/html/gio/ch33s03.html +2 -2
  367. data/vendor/local/share/gtk-doc/html/gio/ch34.html +2 -2
  368. data/vendor/local/share/gtk-doc/html/gio/ch34s02.html +2 -2
  369. data/vendor/local/share/gtk-doc/html/gio/ch34s03.html +2 -2
  370. data/vendor/local/share/gtk-doc/html/gio/ch34s04.html +2 -2
  371. data/vendor/local/share/gtk-doc/html/gio/ch34s05.html +2 -2
  372. data/vendor/local/share/gtk-doc/html/gio/ch34s06.html +2 -2
  373. data/vendor/local/share/gtk-doc/html/gio/ch34s07.html +2 -2
  374. data/vendor/local/share/gtk-doc/html/gio/ch35.html +2 -2
  375. data/vendor/local/share/gtk-doc/html/gio/ch35s02.html +2 -2
  376. data/vendor/local/share/gtk-doc/html/gio/ch35s03.html +60 -60
  377. data/vendor/local/share/gtk-doc/html/gio/ch35s04.html +15 -15
  378. data/vendor/local/share/gtk-doc/html/gio/conversion.html +2 -2
  379. data/vendor/local/share/gtk-doc/html/gio/data-models.html +2 -2
  380. data/vendor/local/share/gtk-doc/html/gio/extending-gio.html +2 -2
  381. data/vendor/local/share/gtk-doc/html/gio/extending.html +2 -2
  382. data/vendor/local/share/gtk-doc/html/gio/failable_initialization.html +2 -2
  383. data/vendor/local/share/gtk-doc/html/gio/file_mon.html +2 -2
  384. data/vendor/local/share/gtk-doc/html/gio/file_ops.html +2 -2
  385. data/vendor/local/share/gtk-doc/html/gio/gapplication-tool.html +2 -2
  386. data/vendor/local/share/gtk-doc/html/gio/gdbus-codegen.html +285 -199
  387. data/vendor/local/share/gtk-doc/html/gio/gdbus-convenience.html +2 -2
  388. data/vendor/local/share/gtk-doc/html/gio/gdbus-example-gdbus-codegen.html +9 -9
  389. data/vendor/local/share/gtk-doc/html/gio/gdbus-lowlevel.html +2 -2
  390. data/vendor/local/share/gtk-doc/html/gio/gdbus.html +2 -2
  391. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html +15 -13
  392. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html +23 -23
  393. data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html +3 -3
  394. data/vendor/local/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html +70 -21
  395. data/vendor/local/share/gtk-doc/html/gio/gio-Extension-Points.html +18 -18
  396. data/vendor/local/share/gtk-doc/html/gio/gio-GActionGroup-exporter.html +2 -2
  397. data/vendor/local/share/gtk-doc/html/gio/gio-GContentType.html +12 -12
  398. data/vendor/local/share/gtk-doc/html/gio/gio-GConverterInputstream.html +3 -3
  399. data/vendor/local/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +3 -3
  400. data/vendor/local/share/gtk-doc/html/gio/gio-GDBusError.html +39 -39
  401. data/vendor/local/share/gtk-doc/html/gio/gio-GFileAttribute.html +3 -3
  402. data/vendor/local/share/gtk-doc/html/gio/gio-GIOError.html +7 -7
  403. data/vendor/local/share/gtk-doc/html/gio/gio-GIOScheduler.html +5 -5
  404. data/vendor/local/share/gtk-doc/html/gio/gio-GMenuModel-exporter.html +2 -2
  405. data/vendor/local/share/gtk-doc/html/gio/gio-GSettingsSchema-GSettingsSchemaSource.html +58 -58
  406. data/vendor/local/share/gtk-doc/html/gio/gio-GWin32InputStream.html +3 -3
  407. data/vendor/local/share/gtk-doc/html/gio/gio-GWin32OutputStream.html +3 -3
  408. data/vendor/local/share/gtk-doc/html/gio/gio-GWin32RegistryKey.html +127 -127
  409. data/vendor/local/share/gtk-doc/html/gio/gio-Owning-Bus-Names.html +14 -14
  410. data/vendor/local/share/gtk-doc/html/gio/gio-TLS-Overview.html +2 -2
  411. data/vendor/local/share/gtk-doc/html/gio/gio-Unix-Mounts.html +114 -24
  412. data/vendor/local/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html +13 -13
  413. data/vendor/local/share/gtk-doc/html/gio/gio-gnetworking.h.html +3 -3
  414. data/vendor/local/share/gtk-doc/html/gio/gio-gpollableutils.html +14 -14
  415. data/vendor/local/share/gtk-doc/html/gio/gio-hierarchy.html +6 -6
  416. data/vendor/local/share/gtk-doc/html/gio/gio-querymodules.html +2 -2
  417. data/vendor/local/share/gtk-doc/html/gio/gio.devhelp2 +31 -14
  418. data/vendor/local/share/gtk-doc/html/gio/gio.html +2 -2
  419. data/vendor/local/share/gtk-doc/html/gio/glib-compile-resources.html +2 -2
  420. data/vendor/local/share/gtk-doc/html/gio/glib-compile-schemas.html +2 -2
  421. data/vendor/local/share/gtk-doc/html/gio/gresource-tool.html +2 -2
  422. data/vendor/local/share/gtk-doc/html/gio/gsettings-tool.html +5 -4
  423. data/vendor/local/share/gtk-doc/html/gio/highlevel-socket.html +2 -2
  424. data/vendor/local/share/gtk-doc/html/gio/icons.html +2 -2
  425. data/vendor/local/share/gtk-doc/html/gio/index.html +9 -3
  426. data/vendor/local/share/gtk-doc/html/gio/migrating.html +2 -2
  427. data/vendor/local/share/gtk-doc/html/gio/networking.html +2 -2
  428. data/vendor/local/share/gtk-doc/html/gio/permissions.html +2 -2
  429. data/vendor/local/share/gtk-doc/html/gio/pt01.html +2 -2
  430. data/vendor/local/share/gtk-doc/html/gio/pt02.html +8 -2
  431. data/vendor/local/share/gtk-doc/html/gio/registry.html +2 -2
  432. data/vendor/local/share/gtk-doc/html/gio/resolver.html +8 -2
  433. data/vendor/local/share/gtk-doc/html/gio/resources.html +2 -2
  434. data/vendor/local/share/gtk-doc/html/gio/running-gio-apps.html +2 -2
  435. data/vendor/local/share/gtk-doc/html/gio/settings.html +2 -2
  436. data/vendor/local/share/gtk-doc/html/gio/streaming.html +2 -2
  437. data/vendor/local/share/gtk-doc/html/gio/subprocesses.html +2 -2
  438. data/vendor/local/share/gtk-doc/html/gio/testing.html +2 -2
  439. data/vendor/local/share/gtk-doc/html/gio/tls.html +2 -2
  440. data/vendor/local/share/gtk-doc/html/gio/tools.html +2 -2
  441. data/vendor/local/share/gtk-doc/html/gio/types.html +2 -2
  442. data/vendor/local/share/gtk-doc/html/gio/utils.html +2 -2
  443. data/vendor/local/share/gtk-doc/html/gio/volume_mon.html +2 -2
  444. data/vendor/local/share/gtk-doc/html/glib/annotation-glossary.html +6 -4
  445. data/vendor/local/share/gtk-doc/html/glib/api-index-full.html +47 -3
  446. data/vendor/local/share/gtk-doc/html/glib/deprecated.html +2 -2
  447. data/vendor/local/share/gtk-doc/html/glib/glib-Arrays.html +25 -23
  448. data/vendor/local/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html +7 -7
  449. data/vendor/local/share/gtk-doc/html/glib/glib-Atomic-Operations.html +11 -11
  450. data/vendor/local/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html +7 -7
  451. data/vendor/local/share/gtk-doc/html/glib/glib-Balanced-Binary-Trees.html +5 -5
  452. data/vendor/local/share/gtk-doc/html/glib/glib-Base64-Encoding.html +23 -21
  453. data/vendor/local/share/gtk-doc/html/glib/glib-Basic-Types.html +19 -15
  454. data/vendor/local/share/gtk-doc/html/glib/glib-Bookmark-file-parser.html +36 -32
  455. data/vendor/local/share/gtk-doc/html/glib/glib-Bounds-checked-integer-arithmetic.html +2 -2
  456. data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Arrays.html +55 -43
  457. data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Order-Macros.html +4 -4
  458. data/vendor/local/share/gtk-doc/html/glib/glib-Caches.html +3 -3
  459. data/vendor/local/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html +169 -108
  460. data/vendor/local/share/gtk-doc/html/glib/glib-Commandline-option-parser.html +91 -91
  461. data/vendor/local/share/gtk-doc/html/glib/glib-Data-Checksums.html +6 -5
  462. data/vendor/local/share/gtk-doc/html/glib/glib-Data-HMACs.html +8 -7
  463. data/vendor/local/share/gtk-doc/html/glib/glib-Datasets.html +33 -23
  464. data/vendor/local/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html +50 -10
  465. data/vendor/local/share/gtk-doc/html/glib/glib-Deprecated-Thread-APIs.html +56 -56
  466. data/vendor/local/share/gtk-doc/html/glib/glib-Double-ended-Queues.html +13 -6
  467. data/vendor/local/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html +45 -38
  468. data/vendor/local/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html +42 -42
  469. data/vendor/local/share/gtk-doc/html/glib/glib-Error-Reporting.html +116 -117
  470. data/vendor/local/share/gtk-doc/html/glib/glib-File-Utilities.html +57 -47
  471. data/vendor/local/share/gtk-doc/html/glib/glib-GDateTime.html +106 -12
  472. data/vendor/local/share/gtk-doc/html/glib/glib-GTimeZone.html +5 -4
  473. data/vendor/local/share/gtk-doc/html/glib/glib-GUuid.html +4 -3
  474. data/vendor/local/share/gtk-doc/html/glib/glib-GVariant.html +258 -249
  475. data/vendor/local/share/gtk-doc/html/glib/glib-GVariantType.html +26 -25
  476. data/vendor/local/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html +3 -3
  477. data/vendor/local/share/gtk-doc/html/glib/glib-Hash-Tables.html +52 -43
  478. data/vendor/local/share/gtk-doc/html/glib/glib-Hook-Functions.html +6 -5
  479. data/vendor/local/share/gtk-doc/html/glib/glib-Hostname-Utilities.html +3 -2
  480. data/vendor/local/share/gtk-doc/html/glib/glib-I18N.html +51 -51
  481. data/vendor/local/share/gtk-doc/html/glib/glib-IO-Channels.html +20 -20
  482. data/vendor/local/share/gtk-doc/html/glib/glib-Key-value-file-parser.html +237 -50
  483. data/vendor/local/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html +57 -38
  484. data/vendor/local/share/gtk-doc/html/glib/glib-Lexical-Scanner.html +3 -2
  485. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocation.html +36 -30
  486. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Slices.html +33 -33
  487. data/vendor/local/share/gtk-doc/html/glib/glib-Message-Logging.html +109 -70
  488. data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html +180 -74
  489. data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html +147 -91
  490. data/vendor/local/share/gtk-doc/html/glib/glib-N-ary-Trees.html +12 -8
  491. data/vendor/local/share/gtk-doc/html/glib/glib-Numerical-Definitions.html +2 -2
  492. data/vendor/local/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html +102 -102
  493. data/vendor/local/share/gtk-doc/html/glib/glib-Pointer-Arrays.html +24 -22
  494. data/vendor/local/share/gtk-doc/html/glib/glib-Quarks.html +8 -8
  495. data/vendor/local/share/gtk-doc/html/glib/glib-Random-Numbers.html +3 -3
  496. data/vendor/local/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html +3 -3
  497. data/vendor/local/share/gtk-doc/html/glib/glib-Sequences.html +43 -41
  498. data/vendor/local/share/gtk-doc/html/glib/glib-Shell-related-Utilities.html +16 -15
  499. data/vendor/local/share/gtk-doc/html/glib/glib-Simple-XML-Subset-Parser.html +74 -74
  500. data/vendor/local/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html +26 -18
  501. data/vendor/local/share/gtk-doc/html/glib/glib-Spawning-Processes.html +88 -82
  502. data/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html +7 -7
  503. data/vendor/local/share/gtk-doc/html/glib/glib-String-Chunks.html +3 -3
  504. data/vendor/local/share/gtk-doc/html/glib/glib-String-Utility-Functions.html +48 -41
  505. data/vendor/local/share/gtk-doc/html/glib/glib-Strings.html +29 -29
  506. data/vendor/local/share/gtk-doc/html/glib/glib-Testing.html +264 -124
  507. data/vendor/local/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html +284 -180
  508. data/vendor/local/share/gtk-doc/html/glib/glib-Thread-Pools.html +2 -2
  509. data/vendor/local/share/gtk-doc/html/glib/glib-Threads.html +192 -191
  510. data/vendor/local/share/gtk-doc/html/glib/glib-Timers.html +2 -2
  511. data/vendor/local/share/gtk-doc/html/glib/glib-Trash-Stacks.html +4 -4
  512. data/vendor/local/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html +12 -12
  513. data/vendor/local/share/gtk-doc/html/glib/glib-UNIX-specific-utilities-and-integration.html +4 -4
  514. data/vendor/local/share/gtk-doc/html/glib/glib-URI-Functions.html +14 -13
  515. data/vendor/local/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html +49 -37
  516. data/vendor/local/share/gtk-doc/html/glib/glib-Version-Information.html +43 -4
  517. data/vendor/local/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html +46 -26
  518. data/vendor/local/share/gtk-doc/html/glib/glib-Windows-Compatibility-Functions.html +10 -10
  519. data/vendor/local/share/gtk-doc/html/glib/glib-building.html +108 -99
  520. data/vendor/local/share/gtk-doc/html/glib/glib-changes.html +2 -2
  521. data/vendor/local/share/gtk-doc/html/glib/glib-compiling.html +2 -2
  522. data/vendor/local/share/gtk-doc/html/glib/glib-core.html +2 -2
  523. data/vendor/local/share/gtk-doc/html/glib/glib-cross-compiling.html +2 -2
  524. data/vendor/local/share/gtk-doc/html/glib/glib-data-types.html +2 -2
  525. data/vendor/local/share/gtk-doc/html/glib/glib-fundamentals.html +2 -2
  526. data/vendor/local/share/gtk-doc/html/glib/glib-gettextize.html +2 -2
  527. data/vendor/local/share/gtk-doc/html/glib/glib-programming.html +2 -2
  528. data/vendor/local/share/gtk-doc/html/glib/glib-regex-syntax.html +2 -2
  529. data/vendor/local/share/gtk-doc/html/glib/glib-resources.html +2 -2
  530. data/vendor/local/share/gtk-doc/html/glib/glib-running.html +7 -2
  531. data/vendor/local/share/gtk-doc/html/glib/glib-utilities.html +2 -2
  532. data/vendor/local/share/gtk-doc/html/glib/glib.devhelp2 +16 -2
  533. data/vendor/local/share/gtk-doc/html/glib/glib.html +2 -2
  534. data/vendor/local/share/gtk-doc/html/glib/gtester-report.html +2 -2
  535. data/vendor/local/share/gtk-doc/html/glib/gtester.html +2 -2
  536. data/vendor/local/share/gtk-doc/html/glib/gvariant-format-strings.html +157 -157
  537. data/vendor/local/share/gtk-doc/html/glib/gvariant-text.html +9 -9
  538. data/vendor/local/share/gtk-doc/html/glib/index.html +3 -3
  539. data/vendor/local/share/gtk-doc/html/glib/tools.html +2 -2
  540. data/vendor/local/share/gtk-doc/html/gobject/GBinding.html +35 -34
  541. data/vendor/local/share/gtk-doc/html/gobject/GTypeModule.html +71 -60
  542. data/vendor/local/share/gtk-doc/html/gobject/GTypePlugin.html +7 -7
  543. data/vendor/local/share/gtk-doc/html/gobject/annotation-glossary.html +4 -2
  544. data/vendor/local/share/gtk-doc/html/gobject/api-index-full.html +10 -2
  545. data/vendor/local/share/gtk-doc/html/gobject/ch01s02.html +15 -15
  546. data/vendor/local/share/gtk-doc/html/gobject/chapter-gobject.html +32 -32
  547. data/vendor/local/share/gtk-doc/html/gobject/chapter-gtype.html +64 -64
  548. data/vendor/local/share/gtk-doc/html/gobject/chapter-intro.html +4 -4
  549. data/vendor/local/share/gtk-doc/html/gobject/chapter-signal.html +24 -24
  550. data/vendor/local/share/gtk-doc/html/gobject/glib-genmarshal.html +98 -21
  551. data/vendor/local/share/gtk-doc/html/gobject/glib-mkenums.html +349 -61
  552. data/vendor/local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html +21 -21
  553. data/vendor/local/share/gtk-doc/html/gobject/gobject-Closures.html +164 -162
  554. data/vendor/local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html +31 -31
  555. data/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html +12 -12
  556. data/vendor/local/share/gtk-doc/html/gobject/gobject-Generic-values.html +51 -49
  557. data/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html +67 -65
  558. data/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html +55 -52
  559. data/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html +392 -222
  560. data/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html +254 -254
  561. data/vendor/local/share/gtk-doc/html/gobject/gobject-Value-arrays.html +20 -19
  562. data/vendor/local/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html +2 -2
  563. data/vendor/local/share/gtk-doc/html/gobject/gobject-memory.html +2 -2
  564. data/vendor/local/share/gtk-doc/html/gobject/gobject-properties.html +91 -91
  565. data/vendor/local/share/gtk-doc/html/gobject/gobject-query.html +2 -2
  566. data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp2 +2 -0
  567. data/vendor/local/share/gtk-doc/html/gobject/gtype-conventions.html +18 -18
  568. data/vendor/local/share/gtk-doc/html/gobject/gtype-instantiable-classed.html +72 -72
  569. data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable-classed.html +117 -117
  570. data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable.html +26 -26
  571. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-chainup.html +10 -10
  572. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-code.html +14 -14
  573. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-construction.html +46 -46
  574. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-destruction.html +42 -42
  575. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-methods.html +134 -134
  576. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject.html +29 -29
  577. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-implement.html +39 -39
  578. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-override.html +72 -72
  579. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-prerequisite.html +61 -61
  580. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-properties.html +67 -67
  581. data/vendor/local/share/gtk-doc/html/gobject/howto-interface.html +64 -64
  582. data/vendor/local/share/gtk-doc/html/gobject/howto-signals.html +27 -27
  583. data/vendor/local/share/gtk-doc/html/gobject/index.html +3 -3
  584. data/vendor/local/share/gtk-doc/html/gobject/pr01.html +2 -2
  585. data/vendor/local/share/gtk-doc/html/gobject/pt01.html +2 -2
  586. data/vendor/local/share/gtk-doc/html/gobject/pt02.html +2 -2
  587. data/vendor/local/share/gtk-doc/html/gobject/pt03.html +2 -2
  588. data/vendor/local/share/gtk-doc/html/gobject/rn01.html +2 -2
  589. data/vendor/local/share/gtk-doc/html/gobject/rn02.html +2 -2
  590. data/vendor/local/share/gtk-doc/html/gobject/signal.html +19 -19
  591. data/vendor/local/share/gtk-doc/html/gobject/tools-ginspector.html +2 -2
  592. data/vendor/local/share/gtk-doc/html/gobject/tools-gob.html +2 -2
  593. data/vendor/local/share/gtk-doc/html/gobject/tools-gtkdoc.html +9 -9
  594. data/vendor/local/share/gtk-doc/html/gobject/tools-refdb.html +2 -2
  595. data/vendor/local/share/gtk-doc/html/gobject/tools-vala.html +2 -2
  596. data/vendor/local/share/gtk-doc/html/libidn2/api-index-full.html +214 -0
  597. data/vendor/local/share/gtk-doc/html/libidn2/home.png +0 -0
  598. data/vendor/local/share/gtk-doc/html/libidn2/index.html +38 -0
  599. data/vendor/local/share/gtk-doc/html/libidn2/left-insensitive.png +0 -0
  600. data/vendor/local/share/gtk-doc/html/libidn2/left.png +0 -0
  601. data/vendor/local/share/gtk-doc/html/libidn2/libidn2-idn2.html +1806 -0
  602. data/vendor/local/share/gtk-doc/html/libidn2/libidn2.devhelp2 +104 -0
  603. data/vendor/local/share/gtk-doc/html/libidn2/libidn2.html +35 -0
  604. data/vendor/local/share/gtk-doc/html/libidn2/right-insensitive.png +0 -0
  605. data/vendor/local/share/gtk-doc/html/libidn2/right.png +0 -0
  606. data/vendor/local/share/gtk-doc/html/libidn2/style.css +479 -0
  607. data/vendor/local/share/gtk-doc/html/libidn2/up-insensitive.png +0 -0
  608. data/vendor/local/share/gtk-doc/html/libidn2/up.png +0 -0
  609. data/vendor/local/share/gtk-doc/html/p11-kit/config-example.html +7 -7
  610. data/vendor/local/share/gtk-doc/html/p11-kit/config-files.html +3 -3
  611. data/vendor/local/share/gtk-doc/html/p11-kit/config.html +3 -3
  612. data/vendor/local/share/gtk-doc/html/p11-kit/devel-building-style.html +3 -3
  613. data/vendor/local/share/gtk-doc/html/p11-kit/devel-building.html +4 -4
  614. data/vendor/local/share/gtk-doc/html/p11-kit/devel-commands.html +3 -3
  615. data/vendor/local/share/gtk-doc/html/p11-kit/devel-debugging.html +3 -3
  616. data/vendor/local/share/gtk-doc/html/p11-kit/devel-paths.html +3 -3
  617. data/vendor/local/share/gtk-doc/html/p11-kit/devel-testing.html +3 -3
  618. data/vendor/local/share/gtk-doc/html/p11-kit/devel.html +3 -3
  619. data/vendor/local/share/gtk-doc/html/p11-kit/index.html +4 -4
  620. data/vendor/local/share/gtk-doc/html/p11-kit/p11-kit-Deprecated.html +44 -44
  621. data/vendor/local/share/gtk-doc/html/p11-kit/p11-kit-Future.html +180 -90
  622. data/vendor/local/share/gtk-doc/html/p11-kit/p11-kit-Modules.html +107 -66
  623. data/vendor/local/share/gtk-doc/html/p11-kit/p11-kit-PIN-Callbacks.html +58 -58
  624. data/vendor/local/share/gtk-doc/html/p11-kit/p11-kit-URIs.html +303 -64
  625. data/vendor/local/share/gtk-doc/html/p11-kit/p11-kit-Utilities.html +17 -17
  626. data/vendor/local/share/gtk-doc/html/p11-kit/p11-kit.devhelp2 +10 -0
  627. data/vendor/local/share/gtk-doc/html/p11-kit/p11-kit.html +7 -5
  628. data/vendor/local/share/gtk-doc/html/p11-kit/pkcs11-conf.html +6 -6
  629. data/vendor/local/share/gtk-doc/html/p11-kit/reference.html +39 -3
  630. data/vendor/local/share/gtk-doc/html/p11-kit/sharing-managed.html +3 -3
  631. data/vendor/local/share/gtk-doc/html/p11-kit/sharing.html +3 -3
  632. data/vendor/local/share/gtk-doc/html/p11-kit/tools.html +3 -3
  633. data/vendor/local/share/gtk-doc/html/p11-kit/trust-disable.html +3 -3
  634. data/vendor/local/share/gtk-doc/html/p11-kit/trust-glib-networking.html +3 -3
  635. data/vendor/local/share/gtk-doc/html/p11-kit/trust-module.html +3 -3
  636. data/vendor/local/share/gtk-doc/html/p11-kit/trust-nss.html +3 -3
  637. data/vendor/local/share/gtk-doc/html/p11-kit/trust.html +3 -3
  638. data/vendor/local/share/info/dir +4 -7
  639. data/vendor/local/share/info/libidn2.info +1134 -0
  640. data/vendor/local/share/info/libtasn1.info +2 -2
  641. data/vendor/local/share/installed-tests/glib-networking/certificate.test +3 -0
  642. data/vendor/local/share/installed-tests/glib-networking/connection.test +3 -0
  643. data/vendor/local/share/installed-tests/glib-networking/dtls-connection.test +3 -0
  644. data/vendor/local/share/installed-tests/glib-networking/file-database.test +3 -0
  645. data/vendor/local/share/installed-tests/glib-networking/pkcs11-array.test +3 -0
  646. data/vendor/local/share/installed-tests/glib-networking/pkcs11-pin.test +3 -0
  647. data/vendor/local/share/installed-tests/glib-networking/pkcs11-slot.test +3 -0
  648. data/vendor/local/share/installed-tests/glib-networking/pkcs11-util.test +3 -0
  649. data/vendor/local/share/license/glib-networking/COPYING +112 -91
  650. data/vendor/local/share/license/libidn2/AUTHORS +7 -0
  651. data/vendor/local/share/license/libidn2/COPYING +35 -0
  652. data/vendor/local/share/license/{p11-kit → p11-glue/p11-kit}/AUTHORS +0 -0
  653. data/vendor/local/share/license/{p11-kit → p11-glue/p11-kit}/COPYING +0 -0
  654. data/vendor/local/share/locale/af/LC_MESSAGES/glib20.mo +0 -0
  655. data/vendor/local/share/locale/an/LC_MESSAGES/glib-networking.mo +0 -0
  656. data/vendor/local/share/locale/an/LC_MESSAGES/glib20.mo +0 -0
  657. data/vendor/local/share/locale/ar/LC_MESSAGES/glib-networking.mo +0 -0
  658. data/vendor/local/share/locale/ar/LC_MESSAGES/glib20.mo +0 -0
  659. data/vendor/local/share/locale/as/LC_MESSAGES/glib-networking.mo +0 -0
  660. data/vendor/local/share/locale/as/LC_MESSAGES/glib20.mo +0 -0
  661. data/vendor/local/share/locale/be/LC_MESSAGES/glib-networking.mo +0 -0
  662. data/vendor/local/share/locale/be/LC_MESSAGES/glib20.mo +0 -0
  663. data/vendor/local/share/locale/bg/LC_MESSAGES/glib-networking.mo +0 -0
  664. data/vendor/local/share/locale/bg/LC_MESSAGES/glib20.mo +0 -0
  665. data/vendor/local/share/locale/bn_IN/LC_MESSAGES/glib-networking.mo +0 -0
  666. data/vendor/local/share/locale/bn_IN/LC_MESSAGES/glib20.mo +0 -0
  667. data/vendor/local/share/locale/bs/LC_MESSAGES/glib-networking.mo +0 -0
  668. data/vendor/local/share/locale/bs/LC_MESSAGES/glib20.mo +0 -0
  669. data/vendor/local/share/locale/ca/LC_MESSAGES/glib-networking.mo +0 -0
  670. data/vendor/local/share/locale/ca/LC_MESSAGES/glib20.mo +0 -0
  671. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib-networking.mo +0 -0
  672. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib20.mo +0 -0
  673. data/vendor/local/share/locale/cs/LC_MESSAGES/glib-networking.mo +0 -0
  674. data/vendor/local/share/locale/cs/LC_MESSAGES/glib20.mo +0 -0
  675. data/vendor/local/share/locale/da/LC_MESSAGES/glib-networking.mo +0 -0
  676. data/vendor/local/share/locale/da/LC_MESSAGES/glib20.mo +0 -0
  677. data/vendor/local/share/locale/de/LC_MESSAGES/glib-networking.mo +0 -0
  678. data/vendor/local/share/locale/de/LC_MESSAGES/glib20.mo +0 -0
  679. data/vendor/local/share/locale/el/LC_MESSAGES/glib-networking.mo +0 -0
  680. data/vendor/local/share/locale/el/LC_MESSAGES/glib20.mo +0 -0
  681. data/vendor/local/share/locale/en_CA/LC_MESSAGES/glib-networking.mo +0 -0
  682. data/vendor/local/share/locale/en_CA/LC_MESSAGES/glib20.mo +0 -0
  683. data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib-networking.mo +0 -0
  684. data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib20.mo +0 -0
  685. data/vendor/local/share/locale/eo/LC_MESSAGES/glib-networking.mo +0 -0
  686. data/vendor/local/share/locale/eo/LC_MESSAGES/glib20.mo +0 -0
  687. data/vendor/local/share/locale/es/LC_MESSAGES/glib-networking.mo +0 -0
  688. data/vendor/local/share/locale/es/LC_MESSAGES/glib20.mo +0 -0
  689. data/vendor/local/share/locale/et/LC_MESSAGES/glib-networking.mo +0 -0
  690. data/vendor/local/share/locale/et/LC_MESSAGES/glib20.mo +0 -0
  691. data/vendor/local/share/locale/eu/LC_MESSAGES/glib-networking.mo +0 -0
  692. data/vendor/local/share/locale/eu/LC_MESSAGES/glib20.mo +0 -0
  693. data/vendor/local/share/locale/fa/LC_MESSAGES/glib-networking.mo +0 -0
  694. data/vendor/local/share/locale/fa/LC_MESSAGES/glib20.mo +0 -0
  695. data/vendor/local/share/locale/fi/LC_MESSAGES/glib-networking.mo +0 -0
  696. data/vendor/local/share/locale/fi/LC_MESSAGES/glib20.mo +0 -0
  697. data/vendor/local/share/locale/fr/LC_MESSAGES/glib-networking.mo +0 -0
  698. data/vendor/local/share/locale/fr/LC_MESSAGES/glib20.mo +0 -0
  699. data/vendor/local/share/locale/fur/LC_MESSAGES/glib-networking.mo +0 -0
  700. data/vendor/local/share/locale/fur/LC_MESSAGES/glib20.mo +0 -0
  701. data/vendor/local/share/locale/ga/LC_MESSAGES/glib20.mo +0 -0
  702. data/vendor/local/share/locale/gd/LC_MESSAGES/glib-networking.mo +0 -0
  703. data/vendor/local/share/locale/gd/LC_MESSAGES/glib20.mo +0 -0
  704. data/vendor/local/share/locale/gl/LC_MESSAGES/glib-networking.mo +0 -0
  705. data/vendor/local/share/locale/gl/LC_MESSAGES/glib20.mo +0 -0
  706. data/vendor/local/share/locale/gu/LC_MESSAGES/glib-networking.mo +0 -0
  707. data/vendor/local/share/locale/gu/LC_MESSAGES/glib20.mo +0 -0
  708. data/vendor/local/share/locale/he/LC_MESSAGES/glib-networking.mo +0 -0
  709. data/vendor/local/share/locale/he/LC_MESSAGES/glib20.mo +0 -0
  710. data/vendor/local/share/locale/hi/LC_MESSAGES/glib-networking.mo +0 -0
  711. data/vendor/local/share/locale/hi/LC_MESSAGES/glib20.mo +0 -0
  712. data/vendor/local/share/locale/hr/LC_MESSAGES/glib-networking.mo +0 -0
  713. data/vendor/local/share/locale/hr/LC_MESSAGES/glib20.mo +0 -0
  714. data/vendor/local/share/locale/hu/LC_MESSAGES/glib-networking.mo +0 -0
  715. data/vendor/local/share/locale/hu/LC_MESSAGES/glib20.mo +0 -0
  716. data/vendor/local/share/locale/id/LC_MESSAGES/glib-networking.mo +0 -0
  717. data/vendor/local/share/locale/id/LC_MESSAGES/glib20.mo +0 -0
  718. data/vendor/local/share/locale/is/LC_MESSAGES/glib20.mo +0 -0
  719. data/vendor/local/share/locale/it/LC_MESSAGES/glib-networking.mo +0 -0
  720. data/vendor/local/share/locale/it/LC_MESSAGES/glib20.mo +0 -0
  721. data/vendor/local/share/locale/ja/LC_MESSAGES/glib-networking.mo +0 -0
  722. data/vendor/local/share/locale/ja/LC_MESSAGES/glib20.mo +0 -0
  723. data/vendor/local/share/locale/kk/LC_MESSAGES/glib-networking.mo +0 -0
  724. data/vendor/local/share/locale/kk/LC_MESSAGES/glib20.mo +0 -0
  725. data/vendor/local/share/locale/km/LC_MESSAGES/glib-networking.mo +0 -0
  726. data/vendor/local/share/locale/kn/LC_MESSAGES/glib-networking.mo +0 -0
  727. data/vendor/local/share/locale/kn/LC_MESSAGES/glib20.mo +0 -0
  728. data/vendor/local/share/locale/ko/LC_MESSAGES/glib-networking.mo +0 -0
  729. data/vendor/local/share/locale/ko/LC_MESSAGES/glib20.mo +0 -0
  730. data/vendor/local/share/locale/lt/LC_MESSAGES/glib-networking.mo +0 -0
  731. data/vendor/local/share/locale/lt/LC_MESSAGES/glib20.mo +0 -0
  732. data/vendor/local/share/locale/lv/LC_MESSAGES/glib-networking.mo +0 -0
  733. data/vendor/local/share/locale/lv/LC_MESSAGES/glib20.mo +0 -0
  734. data/vendor/local/share/locale/ml/LC_MESSAGES/glib-networking.mo +0 -0
  735. data/vendor/local/share/locale/ml/LC_MESSAGES/glib20.mo +0 -0
  736. data/vendor/local/share/locale/mr/LC_MESSAGES/glib-networking.mo +0 -0
  737. data/vendor/local/share/locale/mr/LC_MESSAGES/glib20.mo +0 -0
  738. data/vendor/local/share/locale/nb/LC_MESSAGES/glib-networking.mo +0 -0
  739. data/vendor/local/share/locale/nb/LC_MESSAGES/glib20.mo +0 -0
  740. data/vendor/local/share/locale/ne/LC_MESSAGES/glib-networking.mo +0 -0
  741. data/vendor/local/share/locale/ne/LC_MESSAGES/glib20.mo +0 -0
  742. data/vendor/local/share/locale/nl/LC_MESSAGES/glib-networking.mo +0 -0
  743. data/vendor/local/share/locale/nl/LC_MESSAGES/glib20.mo +0 -0
  744. data/vendor/local/share/locale/oc/LC_MESSAGES/glib-networking.mo +0 -0
  745. data/vendor/local/share/locale/oc/LC_MESSAGES/glib20.mo +0 -0
  746. data/vendor/local/share/locale/or/LC_MESSAGES/glib-networking.mo +0 -0
  747. data/vendor/local/share/locale/or/LC_MESSAGES/glib20.mo +0 -0
  748. data/vendor/local/share/locale/pa/LC_MESSAGES/glib-networking.mo +0 -0
  749. data/vendor/local/share/locale/pa/LC_MESSAGES/glib20.mo +0 -0
  750. data/vendor/local/share/locale/pl/LC_MESSAGES/glib-networking.mo +0 -0
  751. data/vendor/local/share/locale/pl/LC_MESSAGES/glib20.mo +0 -0
  752. data/vendor/local/share/locale/pt/LC_MESSAGES/glib-networking.mo +0 -0
  753. data/vendor/local/share/locale/pt/LC_MESSAGES/glib20.mo +0 -0
  754. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib-networking.mo +0 -0
  755. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib20.mo +0 -0
  756. data/vendor/local/share/locale/ro/LC_MESSAGES/glib-networking.mo +0 -0
  757. data/vendor/local/share/locale/ro/LC_MESSAGES/glib20.mo +0 -0
  758. data/vendor/local/share/locale/ru/LC_MESSAGES/glib-networking.mo +0 -0
  759. data/vendor/local/share/locale/ru/LC_MESSAGES/glib20.mo +0 -0
  760. data/vendor/local/share/locale/sk/LC_MESSAGES/glib-networking.mo +0 -0
  761. data/vendor/local/share/locale/sk/LC_MESSAGES/glib20.mo +0 -0
  762. data/vendor/local/share/locale/sl/LC_MESSAGES/glib-networking.mo +0 -0
  763. data/vendor/local/share/locale/sl/LC_MESSAGES/glib20.mo +0 -0
  764. data/vendor/local/share/locale/sr/LC_MESSAGES/glib-networking.mo +0 -0
  765. data/vendor/local/share/locale/sr/LC_MESSAGES/glib20.mo +0 -0
  766. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib-networking.mo +0 -0
  767. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib20.mo +0 -0
  768. data/vendor/local/share/locale/sv/LC_MESSAGES/glib-networking.mo +0 -0
  769. data/vendor/local/share/locale/sv/LC_MESSAGES/glib20.mo +0 -0
  770. data/vendor/local/share/locale/ta/LC_MESSAGES/glib-networking.mo +0 -0
  771. data/vendor/local/share/locale/ta/LC_MESSAGES/glib20.mo +0 -0
  772. data/vendor/local/share/locale/te/LC_MESSAGES/glib-networking.mo +0 -0
  773. data/vendor/local/share/locale/te/LC_MESSAGES/glib20.mo +0 -0
  774. data/vendor/local/share/locale/tg/LC_MESSAGES/glib-networking.mo +0 -0
  775. data/vendor/local/share/locale/tg/LC_MESSAGES/glib20.mo +0 -0
  776. data/vendor/local/share/locale/th/LC_MESSAGES/glib-networking.mo +0 -0
  777. data/vendor/local/share/locale/th/LC_MESSAGES/glib20.mo +0 -0
  778. data/vendor/local/share/locale/tr/LC_MESSAGES/glib-networking.mo +0 -0
  779. data/vendor/local/share/locale/tr/LC_MESSAGES/glib20.mo +0 -0
  780. data/vendor/local/share/locale/ug/LC_MESSAGES/glib-networking.mo +0 -0
  781. data/vendor/local/share/locale/ug/LC_MESSAGES/glib20.mo +0 -0
  782. data/vendor/local/share/locale/uk/LC_MESSAGES/glib-networking.mo +0 -0
  783. data/vendor/local/share/locale/uk/LC_MESSAGES/glib20.mo +0 -0
  784. data/vendor/local/share/locale/vi/LC_MESSAGES/glib-networking.mo +0 -0
  785. data/vendor/local/share/locale/vi/LC_MESSAGES/glib20.mo +0 -0
  786. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib-networking.mo +0 -0
  787. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib20.mo +0 -0
  788. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib-networking.mo +0 -0
  789. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib20.mo +0 -0
  790. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib-networking.mo +0 -0
  791. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib20.mo +0 -0
  792. data/vendor/local/share/man/man1/asn1Coding.1 +1 -1
  793. data/vendor/local/share/man/man1/asn1Decoding.1 +1 -1
  794. data/vendor/local/share/man/man1/asn1Parser.1 +1 -1
  795. data/vendor/local/share/man/man1/gapplication.1 +1 -1
  796. data/vendor/local/share/man/man1/gdbus-codegen.1 +107 -17
  797. data/vendor/local/share/man/man1/gdbus.1 +1 -1
  798. data/vendor/local/share/man/man1/gettext.1 +1 -1
  799. data/vendor/local/share/man/man1/gio-querymodules.1 +1 -1
  800. data/vendor/local/share/man/man1/gio.1 +1 -1
  801. data/vendor/local/share/man/man1/glib-compile-resources.1 +1 -1
  802. data/vendor/local/share/man/man1/glib-compile-schemas.1 +1 -1
  803. data/vendor/local/share/man/man1/glib-genmarshal.1 +55 -1
  804. data/vendor/local/share/man/man1/glib-gettextize.1 +1 -1
  805. data/vendor/local/share/man/man1/glib-mkenums.1 +241 -23
  806. data/vendor/local/share/man/man1/gobject-query.1 +1 -1
  807. data/vendor/local/share/man/man1/gresource.1 +1 -1
  808. data/vendor/local/share/man/man1/gsettings.1 +5 -3
  809. data/vendor/local/share/man/man1/gtester-report.1 +1 -1
  810. data/vendor/local/share/man/man1/gtester.1 +1 -1
  811. data/vendor/local/share/man/man1/idn2.1 +72 -0
  812. data/vendor/local/share/man/man1/ngettext.1 +1 -1
  813. data/vendor/local/share/man/man3/idn2_check_version.3 +40 -0
  814. data/vendor/local/share/man/man3/idn2_free.3 +33 -0
  815. data/vendor/local/share/man/man3/idn2_lookup_u8.3 +62 -0
  816. data/vendor/local/share/man/man3/idn2_lookup_ul.3 +55 -0
  817. data/vendor/local/share/man/man3/idn2_register_u8.3 +52 -0
  818. data/vendor/local/share/man/man3/idn2_register_ul.3 +51 -0
  819. data/vendor/local/share/man/man3/idn2_strerror.3 +32 -0
  820. data/vendor/local/share/man/man3/idn2_strerror_name.3 +36 -0
  821. data/vendor/local/share/man/man3/idn2_to_ascii_4i.3 +57 -0
  822. data/vendor/local/share/man/man3/idn2_to_ascii_4z.3 +42 -0
  823. data/vendor/local/share/man/man3/idn2_to_ascii_8z.3 +42 -0
  824. data/vendor/local/share/man/man3/idn2_to_ascii_lz.3 +43 -0
  825. data/vendor/local/share/man/man3/idn2_to_unicode_44i.3 +46 -0
  826. data/vendor/local/share/man/man3/idn2_to_unicode_4z4z.3 +39 -0
  827. data/vendor/local/share/man/man3/idn2_to_unicode_8z4z.3 +39 -0
  828. data/vendor/local/share/man/man3/idn2_to_unicode_8z8z.3 +39 -0
  829. data/vendor/local/share/man/man3/idn2_to_unicode_8zlz.3 +40 -0
  830. data/vendor/local/share/man/man3/idn2_to_unicode_lzlz.3 +40 -0
  831. data/vendor/local/share/p11-kit/modules/p11-kit-trust.module +1 -1
  832. metadata +64 -105
  833. data/vendor/local/bin/idn.exe +0 -0
  834. data/vendor/local/bin/libidn-11.def +0 -77
  835. data/vendor/local/bin/libidn-11.dll +0 -0
  836. data/vendor/local/include/idn-free.h +0 -74
  837. data/vendor/local/include/idn-int.h +0 -1
  838. data/vendor/local/include/idna.h +0 -123
  839. data/vendor/local/include/pr29.h +0 -73
  840. data/vendor/local/include/punycode.h +0 -239
  841. data/vendor/local/include/stringprep.h +0 -242
  842. data/vendor/local/include/tld.h +0 -135
  843. data/vendor/local/lib/gio/modules/libgiognutls.a +0 -0
  844. data/vendor/local/lib/gio/modules/libgiognutls.dll.a +0 -0
  845. data/vendor/local/lib/gio/modules/libgiognutls.la +0 -41
  846. data/vendor/local/lib/libidn.a +0 -0
  847. data/vendor/local/lib/libidn.dll.a +0 -0
  848. data/vendor/local/lib/libidn.la +0 -41
  849. data/vendor/local/lib/p11-kit/p11-kit-remote.exe +0 -0
  850. data/vendor/local/lib/pkgconfig/libidn.pc +0 -23
  851. data/vendor/local/share/emacs/site-lisp/idna.el +0 -192
  852. data/vendor/local/share/emacs/site-lisp/punycode.el +0 -182
  853. data/vendor/local/share/gtk-doc/html/p11-kit/index.sgml +0 -189
  854. data/vendor/local/share/info/libidn-components.png +0 -0
  855. data/vendor/local/share/info/libidn.info +0 -4406
  856. data/vendor/local/share/license/glib-networking/AUTHORS +0 -0
  857. data/vendor/local/share/license/libidn/AUTHORS +0 -794
  858. data/vendor/local/share/license/libidn/COPYING +0 -30
  859. data/vendor/local/share/locale/cs/LC_MESSAGES/libidn.mo +0 -0
  860. data/vendor/local/share/locale/da/LC_MESSAGES/libidn.mo +0 -0
  861. data/vendor/local/share/locale/de/LC_MESSAGES/libidn.mo +0 -0
  862. data/vendor/local/share/locale/en@boldquot/LC_MESSAGES/libidn.mo +0 -0
  863. data/vendor/local/share/locale/en@quot/LC_MESSAGES/libidn.mo +0 -0
  864. data/vendor/local/share/locale/eo/LC_MESSAGES/libidn.mo +0 -0
  865. data/vendor/local/share/locale/fi/LC_MESSAGES/libidn.mo +0 -0
  866. data/vendor/local/share/locale/fr/LC_MESSAGES/libidn.mo +0 -0
  867. data/vendor/local/share/locale/hr/LC_MESSAGES/libidn.mo +0 -0
  868. data/vendor/local/share/locale/hu/LC_MESSAGES/libidn.mo +0 -0
  869. data/vendor/local/share/locale/id/LC_MESSAGES/libidn.mo +0 -0
  870. data/vendor/local/share/locale/it/LC_MESSAGES/libidn.mo +0 -0
  871. data/vendor/local/share/locale/ja/LC_MESSAGES/libidn.mo +0 -0
  872. data/vendor/local/share/locale/nl/LC_MESSAGES/libidn.mo +0 -0
  873. data/vendor/local/share/locale/pl/LC_MESSAGES/libidn.mo +0 -0
  874. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/libidn.mo +0 -0
  875. data/vendor/local/share/locale/ro/LC_MESSAGES/libidn.mo +0 -0
  876. data/vendor/local/share/locale/sr/LC_MESSAGES/libidn.mo +0 -0
  877. data/vendor/local/share/locale/uk/LC_MESSAGES/libidn.mo +0 -0
  878. data/vendor/local/share/locale/vi/LC_MESSAGES/libidn.mo +0 -0
  879. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/libidn.mo +0 -0
  880. data/vendor/local/share/man/man1/idn.1 +0 -92
  881. data/vendor/local/share/man/man3/idn_free.3 +0 -49
  882. data/vendor/local/share/man/man3/idna_strerror.3 +0 -80
  883. data/vendor/local/share/man/man3/idna_to_ascii_4i.3 +0 -70
  884. data/vendor/local/share/man/man3/idna_to_ascii_4z.3 +0 -51
  885. data/vendor/local/share/man/man3/idna_to_ascii_8z.3 +0 -51
  886. data/vendor/local/share/man/man3/idna_to_ascii_lz.3 +0 -52
  887. data/vendor/local/share/man/man3/idna_to_unicode_44i.3 +0 -75
  888. data/vendor/local/share/man/man3/idna_to_unicode_4z4z.3 +0 -52
  889. data/vendor/local/share/man/man3/idna_to_unicode_8z4z.3 +0 -52
  890. data/vendor/local/share/man/man3/idna_to_unicode_8z8z.3 +0 -52
  891. data/vendor/local/share/man/man3/idna_to_unicode_8zlz.3 +0 -53
  892. data/vendor/local/share/man/man3/idna_to_unicode_lzlz.3 +0 -54
  893. data/vendor/local/share/man/man3/pr29_4.3 +0 -51
  894. data/vendor/local/share/man/man3/pr29_4z.3 +0 -49
  895. data/vendor/local/share/man/man3/pr29_8z.3 +0 -50
  896. data/vendor/local/share/man/man3/pr29_strerror.3 +0 -55
  897. data/vendor/local/share/man/man3/punycode_decode.3 +0 -73
  898. data/vendor/local/share/man/man3/punycode_encode.3 +0 -76
  899. data/vendor/local/share/man/man3/punycode_strerror.3 +0 -56
  900. data/vendor/local/share/man/man3/stringprep.3 +0 -65
  901. data/vendor/local/share/man/man3/stringprep_4i.3 +0 -70
  902. data/vendor/local/share/man/man3/stringprep_4zi.3 +0 -62
  903. data/vendor/local/share/man/man3/stringprep_check_version.3 +0 -50
  904. data/vendor/local/share/man/man3/stringprep_convert.3 +0 -50
  905. data/vendor/local/share/man/man3/stringprep_locale_charset.3 +0 -57
  906. data/vendor/local/share/man/man3/stringprep_locale_to_utf8.3 +0 -46
  907. data/vendor/local/share/man/man3/stringprep_profile.3 +0 -63
  908. data/vendor/local/share/man/man3/stringprep_strerror.3 +0 -86
  909. data/vendor/local/share/man/man3/stringprep_ucs4_nfkc_normalize.3 +0 -48
  910. data/vendor/local/share/man/man3/stringprep_ucs4_to_utf8.3 +0 -56
  911. data/vendor/local/share/man/man3/stringprep_unichar_to_utf8.3 +0 -48
  912. data/vendor/local/share/man/man3/stringprep_utf8_nfkc_normalize.3 +0 -59
  913. data/vendor/local/share/man/man3/stringprep_utf8_to_locale.3 +0 -46
  914. data/vendor/local/share/man/man3/stringprep_utf8_to_ucs4.3 +0 -54
  915. data/vendor/local/share/man/man3/stringprep_utf8_to_unichar.3 +0 -46
  916. data/vendor/local/share/man/man3/tld_check_4.3 +0 -62
  917. data/vendor/local/share/man/man3/tld_check_4t.3 +0 -58
  918. data/vendor/local/share/man/man3/tld_check_4tz.3 +0 -55
  919. data/vendor/local/share/man/man3/tld_check_4z.3 +0 -59
  920. data/vendor/local/share/man/man3/tld_check_8z.3 +0 -61
  921. data/vendor/local/share/man/man3/tld_check_lz.3 +0 -61
  922. data/vendor/local/share/man/man3/tld_default_table.3 +0 -51
  923. data/vendor/local/share/man/man3/tld_get_4.3 +0 -51
  924. data/vendor/local/share/man/man3/tld_get_4z.3 +0 -48
  925. data/vendor/local/share/man/man3/tld_get_table.3 +0 -49
  926. data/vendor/local/share/man/man3/tld_get_z.3 +0 -49
  927. data/vendor/local/share/man/man3/tld_strerror.3 +0 -60
@@ -1,4406 +0,0 @@
1
- This is libidn.info, produced by makeinfo version 5.2 from libidn.texi.
2
-
3
- This manual is last updated 14 January 2016 for version 1.33 of GNU
4
- Libidn.
5
-
6
- Copyright © 2002-2016 Simon Josefsson.
7
-
8
- Permission is granted to copy, distribute and/or modify this
9
- document under the terms of the GNU Free Documentation License,
10
- Version 1.3 or any later version published by the Free Software
11
- Foundation; with no Invariant Sections, no Front-Cover Texts, and
12
- no Back-Cover Texts. A copy of the license is included in the
13
- section entitled “GNU Free Documentation License”.
14
- INFO-DIR-SECTION Software libraries
15
- START-INFO-DIR-ENTRY
16
- * libidn: (libidn). Internationalized string processing library.
17
- END-INFO-DIR-ENTRY
18
-
19
- INFO-DIR-SECTION Localization
20
- START-INFO-DIR-ENTRY
21
- * idn: (libidn)Invoking idn. Internationalized Domain Name (IDN) string conversion.
22
- END-INFO-DIR-ENTRY
23
-
24
- INFO-DIR-SECTION Emacs
25
- START-INFO-DIR-ENTRY
26
- * IDN Library: (libidn)Emacs API. Emacs API for IDN functions.
27
- END-INFO-DIR-ENTRY
28
-
29
- 
30
- File: libidn.info, Node: Top, Next: Introduction, Up: (dir)
31
-
32
- GNU Libidn
33
- **********
34
-
35
- This manual is last updated 14 January 2016 for version 1.33 of GNU
36
- Libidn.
37
-
38
- Copyright © 2002-2016 Simon Josefsson.
39
-
40
- Permission is granted to copy, distribute and/or modify this
41
- document under the terms of the GNU Free Documentation License,
42
- Version 1.3 or any later version published by the Free Software
43
- Foundation; with no Invariant Sections, no Front-Cover Texts, and
44
- no Back-Cover Texts. A copy of the license is included in the
45
- section entitled “GNU Free Documentation License”.
46
-
47
- * Menu:
48
-
49
- * Introduction:: How to use this manual.
50
- * Preparation:: What you should do before using the library.
51
- * Utility Functions:: Unicode transformation utility functions.
52
- * Stringprep Functions:: Stringprep functions.
53
- * Punycode Functions:: Punycode functions.
54
- * IDNA Functions:: IDNA functions.
55
- * TLD Functions:: TLD functions.
56
- * PR29 Functions:: Detect strings non-idempotent under NFKC.
57
- * Examples:: Demonstrate how to use the library.
58
- * Invoking idn:: Command line interface to the library.
59
- * Emacs API:: Emacs Lisp API for Libidn.
60
- * Java API:: Notes on the Java port of Libidn.
61
- * C# API:: Notes on the C# port of Libidn.
62
- * Acknowledgements:: Whom to blame.
63
- * History:: Rough outline of development history.
64
-
65
- Appendices
66
-
67
- * PR29 discussion:: Implementation aspects of the PR29 flaw.
68
- * On Label Separators:: Discussions of a flaw in the IDNA spec.
69
- * Copying Information:: License texts.
70
-
71
- Indices
72
-
73
- * Function and Variable Index::
74
- * Concept Index::
75
-
76
- 
77
- File: libidn.info, Node: Introduction, Next: Preparation, Prev: Top, Up: Top
78
-
79
- 1 Introduction
80
- **************
81
-
82
- GNU Libidn is a fully documented implementation of the Stringprep,
83
- Punycode and IDNA specifications. Libidn’s purpose is to encode and
84
- decode internationalized domain name strings. There are native C, C#
85
- and Java libraries.
86
-
87
- The C library contains a generic Stringprep implementation. Profiles
88
- for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode
89
- and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism
90
- to define Top-Level Domain (TLD) specific validation tables, and to
91
- compare strings against those tables, is included. Default tables for
92
- some TLDs are also included.
93
-
94
- The Stringprep API consists of two main functions, one for converting
95
- data from the system’s native representation into UTF-8, and one
96
- function to perform the Stringprep processing. Adding a new Stringprep
97
- profile for your application within the API is straightforward. The
98
- Punycode API consists of one encoding function and one decoding
99
- function. The IDNA API consists of the ToASCII and ToUnicode functions,
100
- as well as an high-level interface for converting entire domain names to
101
- and from the ACE encoded form. The TLD API consists of one set of
102
- functions to extract the TLD name from a domain string, one set of
103
- functions to locate the proper TLD table to use based on the TLD name,
104
- and core functions to validate a string against a TLD table, and some
105
- utility wrappers to perform all the steps in one call.
106
-
107
- The library is used by, e.g., GNU SASL and Shishi to process user
108
- names and passwords. Libidn can be built into GNU Libc to enable a new
109
- system-wide getaddrinfo flag for IDN processing.
110
-
111
- Libidn is developed for the GNU/Linux system, but runs on over 20
112
- Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows.
113
- The library is written in C and (parts of) the API is also accessible
114
- from C++, Emacs Lisp, Python and Java. A native Java and C# port is
115
- included.
116
-
117
- Also included is a command line tool, several self tests, code
118
- examples, and more.
119
-
120
- * Menu:
121
-
122
- * Getting Started::
123
- * Features::
124
- * Library Overview::
125
- * Supported Platforms::
126
- * Getting help::
127
- * Commercial Support::
128
- * Downloading and Installing::
129
- * Bug Reports::
130
- * Contributing::
131
-
132
- 
133
- File: libidn.info, Node: Getting Started, Next: Features, Up: Introduction
134
-
135
- 1.1 Getting Started
136
- ===================
137
-
138
- This manual documents the library programming interface. All functions
139
- and data types provided by the library are explained. Included are also
140
- examples, and documentation for the command line tool ‘idn’ that provide
141
- a quick interface to the library. The Emacs Lisp bindings for the
142
- library is also discussed.
143
-
144
- The reader is assumed to possess basic familiarity with
145
- internationalization concepts and network programming in C or C++.
146
-
147
- This manual can be used in several ways. If read from the beginning
148
- to the end, it gives a good introduction into the library and how it can
149
- be used in an application. Forward references are included where
150
- necessary. Later on, the manual can be used as a reference manual to
151
- get just the information needed about any particular interface of the
152
- library. Experienced programmers might want to start looking at the
153
- examples at the end of the manual (*note Examples::), and then only read
154
- up those parts of the interface which are unclear.
155
-
156
- 
157
- File: libidn.info, Node: Features, Next: Library Overview, Prev: Getting Started, Up: Introduction
158
-
159
- 1.2 Features
160
- ============
161
-
162
- This library might have a couple of advantages over other libraries
163
- doing a similar job.
164
-
165
- It’s Free Software
166
- Anybody can use, modify, and redistribute it under the terms of a
167
- free software license.
168
-
169
- It’s thread-safe
170
- No global state is kept in the library. All functions are
171
- re-entrant.
172
-
173
- It’s portable
174
- The code is intended to be written in pure ANSI C89. It has been
175
- tested on many Unix like operating systems, and Windows.
176
-
177
- It’s modularized
178
- The library is composed of several modules, and the only
179
- interaction between modules is through each modules’ public API. If
180
- you only need one piece of functionality, it is possible to take
181
- the files you need and incorporate them into your own project.
182
-
183
- It’s not bloated
184
- The design of the library is based on the smallest API necessary to
185
- implement the basic functionality. It has been carefully extended
186
- with a small number of high-level wrappers to make it comfortable
187
- to use the library. However, it does not implement additional
188
- functionality just for the sake of completeness.
189
-
190
- It’s documented
191
- Sadly, not all software comes with documentation these days. This
192
- one does.
193
-
194
- 
195
- File: libidn.info, Node: Library Overview, Next: Supported Platforms, Prev: Features, Up: Introduction
196
-
197
- 1.3 Library Overview
198
- ====================
199
-
200
- The following illustration show the components that make up Libidn, and
201
- how your application relates to the library. In the illustration,
202
- various components are shown as boxes. You see the generic StringPrep
203
- component, the various StringPrep profiles including Nameprep, the
204
- Punycode component, the IDNA component, and the TLD component. The
205
- arrows indicate aggregation, e.g., IDNA uses Punycode and Nameprep, and
206
- in turn Nameprep uses the generic StringPrep interface. The interfaces
207
- to all components are available for applications, no component within
208
- the library is hidden from the application.
209
-
210
- [image src="libidn-components.png"]
211
-
212
- 
213
- File: libidn.info, Node: Supported Platforms, Next: Getting help, Prev: Library Overview, Up: Introduction
214
-
215
- 1.4 Supported Platforms
216
- =======================
217
-
218
- Libidn has at some point in time been tested on the following platforms.
219
- Build reports for each platforms and Libidn version is available at
220
- <http://autobuild.josefsson.org/libidn/>.
221
-
222
- 1. Debian GNU/Linux 3.0 (Woody)
223
-
224
- GCC 2.95.4 and GNU Make. This is the main development platform.
225
- ‘alphaev67-unknown-linux-gnu’, ‘alphaev6-unknown-linux-gnu’,
226
- ‘arm-unknown-linux-gnu’, ‘armv4l-unknown-linux-gnu’,
227
- ‘hppa-unknown-linux-gnu’, ‘hppa64-unknown-linux-gnu’,
228
- ‘i686-pc-linux-gnu’, ‘ia64-unknown-linux-gnu’,
229
- ‘m68k-unknown-linux-gnu’, ‘mips-unknown-linux-gnu’,
230
- ‘mipsel-unknown-linux-gnu’, ‘powerpc-unknown-linux-gnu’,
231
- ‘s390-ibm-linux-gnu’, ‘sparc-unknown-linux-gnu’,
232
- ‘sparc64-unknown-linux-gnu’.
233
-
234
- 2. Debian GNU/Linux 2.1
235
-
236
- GCC 2.95.1 and GNU Make. ‘armv4l-unknown-linux-gnu’.
237
-
238
- 3. Tru64 UNIX
239
-
240
- Tru64 UNIX C compiler and Tru64 Make. ‘alphaev67-dec-osf5.1’,
241
- ‘alphaev68-dec-osf5.1’.
242
-
243
- 4. SuSE Linux 7.1
244
-
245
- GCC 2.96 and GNU Make. ‘alphaev6-unknown-linux-gnu’,
246
- ‘alphaev67-unknown-linux-gnu’.
247
-
248
- 5. SuSE Linux 7.2a
249
-
250
- GCC 3.0 and GNU Make. ‘ia64-unknown-linux-gnu’.
251
-
252
- 6. SuSE Linux
253
-
254
- GCC 3.2.2 and GNU Make. ‘x86_64-unknown-linux-gnu’ (AMD64 Opteron
255
- “Melody”).
256
-
257
- 7. SuSE Enterprise Server 9 on IBM OpenPower 720
258
-
259
- GCC 3.3.3 and GNU Make. ‘powerpc64-unknown-linux-gnu’.
260
-
261
- 8. RedHat Linux 7.2
262
-
263
- GCC 2.96 and GNU Make. ‘alphaev6-unknown-linux-gnu’,
264
- ‘alphaev67-unknown-linux-gnu’, ‘ia64-unknown-linux-gnu’.
265
-
266
- 9. RedHat Linux 8.0
267
-
268
- GCC 3.2 and GNU Make. ‘i686-pc-linux-gnu’.
269
-
270
- 10. RedHat Advanced Server 2.1
271
-
272
- GCC 2.96 and GNU Make. ‘i686-pc-linux-gnu’.
273
-
274
- 11. Slackware Linux 8.0.01
275
-
276
- GCC 2.95.3 and GNU Make. ‘i686-pc-linux-gnu’.
277
-
278
- 12. Mandrake Linux 9.0
279
-
280
- GCC 3.2 and GNU Make. ‘i686-pc-linux-gnu’.
281
-
282
- 13. IRIX 6.5
283
-
284
- MIPS C compiler, IRIX Make. ‘mips-sgi-irix6.5’.
285
-
286
- 14. AIX 4.3.2
287
-
288
- IBM C for AIX compiler, AIX Make. ‘rs6000-ibm-aix4.3.2.0’.
289
-
290
- 15. Microsoft Windows 2000 (Cygwin)
291
-
292
- GCC 3.2, GNU make. ‘i686-pc-cygwin’.
293
-
294
- 16. HP-UX 11
295
-
296
- HP-UX C compiler and HP Make. ‘ia64-hp-hpux11.22’,
297
- ‘hppa2.0w-hp-hpux11.11’.
298
-
299
- 17. SUN Solaris 2.7
300
-
301
- GCC 3.0.4 and GNU Make. ‘sparc-sun-solaris2.7’.
302
-
303
- 18. SUN Solaris 2.8
304
-
305
- Sun WorkShop Compiler C 6.0 and SUN Make. ‘sparc-sun-solaris2.8’.
306
-
307
- 19. SUN Solaris 2.9
308
-
309
- Sun Forte Developer 7 C compiler and GNU Make.
310
- ‘sparc-sun-solaris2.9’.
311
-
312
- 20. NetBSD 1.6
313
-
314
- GCC 2.95.3 and GNU Make. ‘alpha-unknown-netbsd1.6’,
315
- ‘i386-unknown-netbsdelf1.6’.
316
-
317
- 21. OpenBSD 3.1 and 3.2
318
-
319
- GCC 2.95.3 and GNU Make. ‘alpha-unknown-openbsd3.1’,
320
- ‘i386-unknown-openbsd3.1’.
321
-
322
- 22. FreeBSD 4.7 and 4.8
323
-
324
- GCC 2.95.4 and GNU Make. ‘alpha-unknown-freebsd4.7’,
325
- ‘alpha-unknown-freebsd4.8’, ‘i386-unknown-freebsd4.7’,
326
- ‘i386-unknown-freebsd4.8’.
327
-
328
- 23. MacOS X 10.2 Server Edition
329
-
330
- GCC 3.1 and GNU Make. ‘powerpc-apple-darwin6.5’.
331
-
332
- 24. MacOS X 10.4 “Tiger” with Xcode 2.0
333
-
334
- GCC 4.0 and GNU Make. ‘powerpc-apple-darwin8.0’.
335
-
336
- 25. Cross compiled to uClinux/uClibc on Motorola Coldfire
337
-
338
- GCC 3.4 and GNU Make ‘m68k-uclinux-elf’.
339
-
340
- 26. Cross compiled to ARM using Glibc
341
-
342
- GCC 2.95 and GNU Make ‘arm-linux’.
343
-
344
- 27. Cross compiled to Mingw32.
345
-
346
- GCC 3.4.4 and GNU Make ‘i586-mingw32msvc’.
347
-
348
- 28. OS/2
349
-
350
- GCC.
351
-
352
- If you use Libidn on, or port Libidn to, a new platform please report
353
- it to the author.
354
-
355
- 
356
- File: libidn.info, Node: Getting help, Next: Commercial Support, Prev: Supported Platforms, Up: Introduction
357
-
358
- 1.5 Getting help
359
- ================
360
-
361
- A mailing list where users of Libidn may help each other exists, and you
362
- can reach it by sending e-mail to <help-libidn@gnu.org>. Archives of
363
- the mailing list discussions, and an interface to manage subscriptions,
364
- is available through the World Wide Web at
365
- <http://lists.gnu.org/mailman/listinfo/help-libidn>.
366
-
367
- 
368
- File: libidn.info, Node: Commercial Support, Next: Downloading and Installing, Prev: Getting help, Up: Introduction
369
-
370
- 1.6 Commercial Support
371
- ======================
372
-
373
- Commercial support is available for users of GNU Libidn. The kind of
374
- support that can be purchased may include:
375
-
376
- • Implement new features. Such as country code specific profiling to
377
- support a restricted subset of Unicode.
378
-
379
- • Port Libidn to new platforms. This could include porting Libidn to
380
- an embedded platforms that may need memory or size optimization.
381
-
382
- • Integrating IDN support in your existing project.
383
-
384
- • System design of components related to IDN.
385
-
386
- If you are interested, please write to:
387
-
388
- Simon Josefsson Datakonsult AB
389
- Hagagatan 24
390
- 113 47 Stockholm
391
- Sweden
392
-
393
- E-mail: simon@josefsson.org
394
-
395
- If your company provides support related to GNU Libidn and would like
396
- to be mentioned here, contact the author (*note Bug Reports::).
397
-
398
- 
399
- File: libidn.info, Node: Downloading and Installing, Next: Bug Reports, Prev: Commercial Support, Up: Introduction
400
-
401
- 1.7 Downloading and Installing
402
- ==============================
403
-
404
- The package can be downloaded from several places, including:
405
-
406
- <ftp://alpha.gnu.org/pub/gnu/libidn/>
407
-
408
- The latest version is stored in a file, e.g., ‘libidn-1.33.tar.gz’
409
- where the ‘1.33’ value is the highest version number in the directory.
410
-
411
- The package is then extracted, configured and built like many other
412
- packages that use Autoconf. For detailed information on configuring and
413
- building it, refer to the ‘INSTALL’ file that is part of the
414
- distribution archive.
415
-
416
- Here is an example terminal session that download, configure, build
417
- and install the package. You will need a few basic tools, such as ‘sh’,
418
- ‘make’ and ‘cc’.
419
-
420
- $ wget -q ftp://alpha.gnu.org/pub/gnu/libidn/libidn-1.33.tar.gz
421
- $ tar xfz libidn-1.33.tar.gz
422
- $ cd libidn-1.33/
423
- $ ./configure
424
- ...
425
- $ make
426
- ...
427
- $ make install
428
- ...
429
-
430
- After that Libidn should be properly installed and ready for use.
431
-
432
- A few ‘configure’ options may be relevant, summarized in the table.
433
-
434
- ‘--enable-java’
435
- Build the Java port into a *.JAR file. *Note Java API::, for more
436
- information.
437
-
438
- ‘--disable-tld’
439
- Disable the TLD module. This would typically only be useful if you
440
- are building on a memory restricted platforms. *Note TLD
441
- Functions::, for more information.
442
-
443
- ‘--enable-csharp[=IMPL]’
444
- Build the ‘C#’ port into a ‘*.DLL’ file. *Note C# API::, for more
445
- information. Here, ‘IMPL’ is ‘pnet’ or ‘mono’, indicating whether
446
- the PNET ‘cscc’ compiler or the Mono ‘mcs’ compiler should be used,
447
- respectively.
448
-
449
- ‘--disable-valgrind-tests’
450
- Disable running the self-checks under Valgrind
451
- (<http://valgrind.org/>). Normally Valgrind does not cause
452
- problems and can detect some severe memory errors. If you are
453
- getting errors from Valgrind that are caused by the compiler or
454
- libc (possibly as a result of special optimization flags), you may
455
- use this option to disable the use of Valgrind.
456
-
457
- For the complete list, refer to the output from ‘configure --help’.
458
-
459
- * Menu:
460
-
461
- * Installing under Windows:: Windows specific build instructions.
462
-
463
- 
464
- File: libidn.info, Node: Installing under Windows, Up: Downloading and Installing
465
-
466
- 1.7.1 Installing under Windows
467
- ------------------------------
468
-
469
- There are two ways to build Libidn on Windows: via MinGW or via Visual
470
- Studio.
471
-
472
- With MinGW, you can build a Libidn DLL and use it from other
473
- applications. After installing MinGW (<http://mingw.org/>) follow the
474
- generic installation instructions (*note Downloading and Installing::).
475
- The DLL is installed by default.
476
-
477
- For information on how to use the DLL in other applications, see:
478
- <http://www.mingw.org/mingwfaq.shtml#faq-msvcdll>.
479
-
480
- You can build Libidn as a native Visual Studio C++ project. This
481
- allows you to build the code for other platforms that VS supports, such
482
- as Windows Mobile. You need Visual Studio 2005 or later.
483
-
484
- First download and unpack the archive as described in the generic
485
- installation instructions (*note Downloading and Installing::). Don’t
486
- run ‘./configure’. Instead, start Visual Studio and open the project
487
- file ‘windows/libidn.sln’ inside the Libidn directory. You should be
488
- able to build the project using Build Project.
489
-
490
- Output libraries will be written into the ‘windows/lib’ (or
491
- ‘windows/lib/debug’ for Debug versions) folder.
492
-
493
- When working with Windows you may want to look into the special
494
- memory handling functions that may be needed (*note Memory handling
495
- under Windows::).
496
-
497
- 
498
- File: libidn.info, Node: Bug Reports, Next: Contributing, Prev: Downloading and Installing, Up: Introduction
499
-
500
- 1.8 Bug Reports
501
- ===============
502
-
503
- If you think you have found a bug in Libidn, please investigate it and
504
- report it.
505
-
506
- • Please make sure that the bug is really in Libidn, and preferably
507
- also check that it hasn’t already been fixed in the latest version.
508
-
509
- • You have to send us a test case that makes it possible for us to
510
- reproduce the bug.
511
-
512
- • You also have to explain what is wrong; if you get a crash, or if
513
- the results printed are not good and in that case, in what way.
514
- Make sure that the bug report includes all information you would
515
- need to fix this kind of bug for someone else.
516
-
517
- Please make an effort to produce a self-contained report, with
518
- something definite that can be tested or debugged. Vague queries or
519
- piecemeal messages are difficult to act on and don’t help the
520
- development effort.
521
-
522
- If your bug report is good, we will do our best to help you to get a
523
- corrected version of the software; if the bug report is poor, we won’t
524
- do anything about it (apart from asking you to send better bug reports).
525
-
526
- If you think something in this manual is unclear, or downright
527
- incorrect, or if the language needs to be improved, please also send a
528
- note.
529
-
530
- Send your bug report to:
531
-
532
- ‘bug-libidn@gnu.org’
533
-
534
- 
535
- File: libidn.info, Node: Contributing, Prev: Bug Reports, Up: Introduction
536
-
537
- 1.9 Contributing
538
- ================
539
-
540
- If you want to submit a patch for inclusion – from solve a typo you
541
- discovered, up to adding support for a new feature – you should submit
542
- it as a bug report (*note Bug Reports::). There are some things that
543
- you can do to increase the chances for it to be included in the official
544
- package.
545
-
546
- Unless your patch is very small (say, under 10 lines) we require that
547
- you assign the copyright of your work to the Free Software Foundation.
548
- This is to protect the freedom of the project. If you have not already
549
- signed papers, we will send you the necessary information when you
550
- submit your contribution.
551
-
552
- For contributions that doesn’t consist of actual programming code,
553
- the only guidelines are common sense. Use it.
554
-
555
- For code contributions, a number of style guides will help you:
556
-
557
- • Coding Style. Follow the GNU Standards document (*note GNU Coding
558
- Standards: (standards)top.).
559
-
560
- If you normally code using another coding standard, there is no
561
- problem, but you should use ‘indent’ to reformat the code (*note
562
- GNU Indent: (indent)top.) before submitting your work.
563
-
564
- • Use the unified diff format ‘diff -u’.
565
-
566
- • Return errors. No reason whatsoever should abort the execution of
567
- the library. Even memory allocation errors, e.g. when malloc
568
- return NULL, should work although result in an error code.
569
-
570
- • Design with thread safety in mind. Don’t use global variables and
571
- the like.
572
-
573
- • Avoid using the C math library. It causes problems for embedded
574
- implementations, and in most situations it is very easy to avoid
575
- using it.
576
-
577
- • Document your functions. Use comments before each function
578
- headers, that, if properly formatted, are extracted into GTK-DOC
579
- web pages. Don’t forget to update the Texinfo manual as well.
580
-
581
- • Supply a ChangeLog and NEWS entries, where appropriate.
582
-
583
- 
584
- File: libidn.info, Node: Preparation, Next: Utility Functions, Prev: Introduction, Up: Top
585
-
586
- 2 Preparation
587
- *************
588
-
589
- To use ‘Libidn’, you have to perform some changes to your sources and
590
- the build system. The necessary changes are small and explained in the
591
- following sections. At the end of this chapter, it is described how the
592
- library is initialized, and how the requirements of the library are
593
- verified.
594
-
595
- A faster way to find out how to adapt your application for use with
596
- ‘Libidn’ may be to look at the examples at the end of this manual (*note
597
- Examples::).
598
-
599
- * Menu:
600
-
601
- * Header::
602
- * Initialization::
603
- * Version Check::
604
- * Building the source::
605
- * Autoconf tests::
606
- * Memory handling under Windows::
607
-
608
- 
609
- File: libidn.info, Node: Header, Next: Initialization, Up: Preparation
610
-
611
- 2.1 Header
612
- ==========
613
-
614
- The library contains a few independent parts, and each part export the
615
- interfaces (data types and functions) in a header file. You must
616
- include the appropriate header files in all programs using the library,
617
- either directly or through some other header file, like this:
618
-
619
- #include <stringprep.h>
620
-
621
- The header files and the functions they define are categorized as
622
- follows:
623
-
624
- stringprep.h
625
-
626
- The low-level stringprep API entry point. For IDN applications,
627
- this is usually invoked via IDNA. Some applications, specifically
628
- non-IDN ones, may want to prepare strings directly though, and
629
- should include this header file.
630
-
631
- The name space of the stringprep part of Libidn is ‘stringprep*’
632
- for function names, ‘Stringprep*’ for data types and ‘STRINGPREP_*’
633
- for other symbols. In addition, ‘_stringprep*’ is reserved for
634
- internal use and should never be used by applications.
635
-
636
- punycode.h
637
-
638
- The entry point to Punycode encoding and decoding functions.
639
- Normally punycode is used via the idna.h interface, but some
640
- application may want to perform raw punycode operations.
641
-
642
- The name space of the punycode part of Libidn is ‘punycode_*’ for
643
- function names, ‘Punycode*’ for data types and ‘PUNYCODE_*’ for
644
- other symbols. In addition, ‘_punycode*’ is reserved for internal
645
- use and should never be used by applications.
646
- idna.h
647
-
648
- The entry point to the IDNA functions. This is the normal entry
649
- point for applications that need IDN functionality.
650
-
651
- The name space of the IDNA part of Libidn is ‘idna_*’ for function
652
- names, ‘Idna*’ for data types and ‘IDNA_*’ for other symbols. In
653
- addition, ‘_idna*’ is reserved for internal use and should never be
654
- used by applications.
655
-
656
- tld.h
657
-
658
- The entry point to the TLD functions. Normal applications are not
659
- expected to need this functionality, but it is present for
660
- applications that are used by TLDs to validate customer input.
661
-
662
- The name space of the TLD part of Libidn is ‘tld_*’ for function
663
- names, ‘Tld_*’ for data types and ‘TLD_*’ for other symbols. In
664
- addition, ‘_tld*’ is reserved for internal use and should never be
665
- used by applications.
666
-
667
- pr29.h
668
-
669
- The entry point to the PR29 functions. These functions are used to
670
- detect “problem sequences” (*note PR29 Functions::), mostly for use
671
- in security critical applications.
672
-
673
- The name space of the PR29 part of Libidn is ‘pr29_*’ for function
674
- names, ‘Pr29_*’ for data types and ‘PR29_*’ for other symbols. In
675
- addition, ‘_pr29*’ is reserved for internal use and should never be
676
- used by applications.
677
-
678
- idn-free.h
679
-
680
- The entry point to the Windows memory de-allocation function (*note
681
- Memory handling under Windows::). It contains only one function
682
- ‘idn_free’.
683
-
684
- All header files defined and use the symbol ‘IDNAPI’ to decorate the
685
- API functions.
686
-
687
- 
688
- File: libidn.info, Node: Initialization, Next: Version Check, Prev: Header, Up: Preparation
689
-
690
- 2.2 Initialization
691
- ==================
692
-
693
- Libidn is stateless and does not need any initialization.
694
-
695
- 
696
- File: libidn.info, Node: Version Check, Next: Building the source, Prev: Initialization, Up: Preparation
697
-
698
- 2.3 Version Check
699
- =================
700
-
701
- It is often desirable to check that the version of ‘Libidn’ used is
702
- indeed one which fits all requirements. Even with binary compatibility
703
- new features may have been introduced but due to problem with the
704
- dynamic linker an old version is actually used. So you may want to
705
- check that the version is okay right after program startup.
706
-
707
- stringprep_check_version
708
- ------------------------
709
-
710
- -- Function: const char * stringprep_check_version (const char *
711
- REQ_VERSION)
712
- REQ_VERSION: Required version number, or NULL.
713
-
714
- Check that the version of the library is at minimum the requested
715
- one and return the version string; return NULL if the condition is
716
- not satisfied. If a NULL is passed to this function, no check is
717
- done, but the version string is simply returned.
718
-
719
- See ‘STRINGPREP_VERSION’ for a suitable ‘req_version’ string.
720
-
721
- Return value: Version string of run-time library, or NULL if the
722
- run-time library does not meet the required version number.
723
-
724
- The normal way to use the function is to put something similar to the
725
- following first in your ‘main’:
726
-
727
- if (!stringprep_check_version (STRINGPREP_VERSION))
728
- {
729
- printf ("stringprep_check_version() failed:\n"
730
- "Header file incompatible with shared library.\n");
731
- exit(EXIT_FAILURE);
732
- }
733
-
734
- 
735
- File: libidn.info, Node: Building the source, Next: Autoconf tests, Prev: Version Check, Up: Preparation
736
-
737
- 2.4 Building the source
738
- =======================
739
-
740
- If you want to compile a source file including e.g. the ‘idna.h’ header
741
- file, you must make sure that the compiler can find it in the directory
742
- hierarchy. This is accomplished by adding the path to the directory in
743
- which the header file is located to the compilers include file search
744
- path (via the ‘-I’ option).
745
-
746
- However, the path to the include file is determined at the time the
747
- source is configured. To solve this problem, ‘Libidn’ uses the external
748
- package ‘pkg-config’ that knows the path to the include file and other
749
- configuration options. The options that need to be added to the
750
- compiler invocation at compile time are output by the ‘--cflags’ option
751
- to ‘pkg-config libidn’. The following example shows how it can be used
752
- at the command line:
753
-
754
- gcc -c foo.c `pkg-config libidn --cflags`
755
-
756
- Adding the output of ‘pkg-config libidn --cflags’ to the compilers
757
- command line will ensure that the compiler can find e.g. the idna.h
758
- header file.
759
-
760
- A similar problem occurs when linking the program with the library.
761
- Again, the compiler has to find the library files. For this to work,
762
- the path to the library files has to be added to the library search path
763
- (via the ‘-L’ option). For this, the option ‘--libs’ to ‘pkg-config
764
- libidn’ can be used. For convenience, this option also outputs all
765
- other options that are required to link the program with the ‘libidn’
766
- library. The example shows how to link ‘foo.o’ with the ‘libidn’
767
- library to a program ‘foo’.
768
-
769
- gcc -o foo foo.o `pkg-config libidn --libs`
770
-
771
- Of course you can also combine both examples to a single command by
772
- specifying both options to ‘pkg-config’:
773
-
774
- gcc -o foo foo.c `pkg-config libidn --cflags --libs`
775
-
776
- 
777
- File: libidn.info, Node: Autoconf tests, Next: Memory handling under Windows, Prev: Building the source, Up: Preparation
778
-
779
- 2.5 Autoconf tests
780
- ==================
781
-
782
- If your project uses Autoconf (*note GNU Autoconf: (autoconf)top.) to
783
- check for installed libraries, you might find the following snippet
784
- illustrative. It add a new ‘configure’ parameter ‘--with-libidn’, and
785
- check for ‘idna.h’ and ‘-lidn’ (possibly below the directory specified
786
- as the optional argument to ‘--with-libidn’), and define the CPP symbol
787
- ‘LIBIDN’ if the library is found. The default behaviour is to search
788
- for the library and enable the functionality (that is, define the
789
- symbol) when the library is found, but if you wish to make the default
790
- behaviour of your package be that Libidn is not used (even if it is
791
- installed on the system), change ‘libidn=yes’ to ‘libidn=no’ on the
792
- third line.
793
-
794
- AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
795
- [Support IDN (needs GNU Libidn)]),
796
- libidn=$withval, libidn=yes)
797
- if test "$libidn" != "no"; then
798
- if test "$libidn" != "yes"; then
799
- LDFLAGS="${LDFLAGS} -L$libidn/lib"
800
- CPPFLAGS="${CPPFLAGS} -I$libidn/include"
801
- fi
802
- AC_CHECK_HEADER(idna.h,
803
- AC_CHECK_LIB(idn, stringprep_check_version,
804
- [libidn=yes LIBS="${LIBS} -lidn"], libidn=no),
805
- libidn=no)
806
- fi
807
- if test "$libidn" != "no" ; then
808
- AC_DEFINE(LIBIDN, 1, [Define to 1 if you want IDN support.])
809
- else
810
- AC_MSG_WARN([Libidn not found])
811
- fi
812
- AC_MSG_CHECKING([if Libidn should be used])
813
- AC_MSG_RESULT($libidn)
814
-
815
- If you require that your users have installed ‘pkg-config’ (which I
816
- cannot recommend generally), the above can be done more easily as
817
- follows.
818
-
819
- AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
820
- [Support IDN (needs GNU Libidn)]),
821
- libidn=$withval, libidn=yes)
822
- if test "$libidn" != "no" ; then
823
- PKG_CHECK_MODULES(LIBIDN, libidn >= 0.0.0, [libidn=yes], [libidn=no])
824
- if test "$libidn" != "yes" ; then
825
- libidn=no
826
- AC_MSG_WARN([Libidn not found])
827
- else
828
- libidn=yes
829
- AC_DEFINE(LIBIDN, 1, [Define to 1 if you want Libidn.])
830
- fi
831
- fi
832
- AC_MSG_CHECKING([if Libidn should be used])
833
- AC_MSG_RESULT($libidn)
834
-
835
- 
836
- File: libidn.info, Node: Memory handling under Windows, Prev: Autoconf tests, Up: Preparation
837
-
838
- 2.6 Memory handling under Windows
839
- =================================
840
-
841
- Several functions in the library allocates memory. The memory is
842
- expected to be de-allocated using the ‘free’ function. Under Windows,
843
- it is sometimes necessary to de-allocate memory in the same module that
844
- allocated a memory region. The reason is that different modules use
845
- separate heap memory regions. To solve this problem we provide a
846
- function to de-allocate memory inside the library.
847
-
848
- Note that we do not recommend using this interface generally if you
849
- do not care about Windows portability.
850
-
851
- 2.7 Header file ‘idn-free.h’
852
- ============================
853
-
854
- To use the function explained in this chapter, you need to include the
855
- file ‘idn-free.h’ using:
856
-
857
- #include <idn-free.h>
858
-
859
- 2.8 Memory de-allocation function
860
- =================================
861
-
862
- idn_free
863
- --------
864
-
865
- -- Function: void idn_free (void * PTR)
866
- PTR: memory region to deallocate, or ‘NULL’ .
867
-
868
- Deallocates memory region by calling ‘free()’ . If ‘ptr’ is ‘NULL’
869
- no operation is performed.
870
-
871
- Normally applications de-allocate strings allocated by libidn by
872
- calling ‘free()’ directly. Under Windows, different parts of the
873
- same application may use different heap memory, and then it is
874
- important to deallocate memory allocated within the same module
875
- that allocated it. This function makes that possible.
876
-
877
- 
878
- File: libidn.info, Node: Utility Functions, Next: Stringprep Functions, Prev: Preparation, Up: Top
879
-
880
- 3 Utility Functions
881
- *******************
882
-
883
- The rest of this library makes extensive use of Unicode characters. In
884
- order to interface this library with the outside world, your application
885
- may need to make various Unicode transformations.
886
-
887
- 3.1 Header file ‘stringprep.h’
888
- ==============================
889
-
890
- To use the functions explained in this chapter, you need to include the
891
- file ‘stringprep.h’ using:
892
-
893
- #include <stringprep.h>
894
-
895
- 3.2 Unicode Encoding Transformation
896
- ===================================
897
-
898
- stringprep_unichar_to_utf8
899
- --------------------------
900
-
901
- -- Function: int stringprep_unichar_to_utf8 (uint32_t C, char * OUTBUF)
902
- C: a ISO10646 character code
903
-
904
- OUTBUF: output buffer, must have at least 6 bytes of space. If
905
- ‘NULL’ , the length will be computed and returned and nothing will
906
- be written to ‘outbuf’ .
907
-
908
- Converts a single character to UTF-8.
909
-
910
- Return value: number of bytes written.
911
-
912
- stringprep_utf8_to_unichar
913
- --------------------------
914
-
915
- -- Function: uint32_t stringprep_utf8_to_unichar (const char * P)
916
- P: a pointer to Unicode character encoded as UTF-8
917
-
918
- Converts a sequence of bytes encoded as UTF-8 to a Unicode
919
- character. If ‘p’ does not point to a valid UTF-8 encoded
920
- character, results are undefined.
921
-
922
- Return value: the resulting character.
923
-
924
- stringprep_ucs4_to_utf8
925
- -----------------------
926
-
927
- -- Function: char * stringprep_ucs4_to_utf8 (const uint32_t * STR,
928
- ssize_t LEN, size_t * ITEMS_READ, size_t * ITEMS_WRITTEN)
929
- STR: a UCS-4 encoded string
930
-
931
- LEN: the maximum length of ‘str’ to use. If ‘len’ < 0, then the
932
- string is terminated with a 0 character.
933
-
934
- ITEMS_READ: location to store number of characters read read, or
935
- ‘NULL’ .
936
-
937
- ITEMS_WRITTEN: location to store number of bytes written or ‘NULL’
938
- . The value here stored does not include the trailing 0 byte.
939
-
940
- Convert a string from a 32-bit fixed width representation as UCS-4.
941
- to UTF-8. The result will be terminated with a 0 byte.
942
-
943
- Return value: a pointer to a newly allocated UTF-8 string. This
944
- value must be deallocated by the caller. If an error occurs,
945
- ‘NULL’ will be returned.
946
-
947
- stringprep_utf8_to_ucs4
948
- -----------------------
949
-
950
- -- Function: uint32_t * stringprep_utf8_to_ucs4 (const char * STR,
951
- ssize_t LEN, size_t * ITEMS_WRITTEN)
952
- STR: a UTF-8 encoded string
953
-
954
- LEN: the maximum length of ‘str’ to use. If ‘len’ < 0, then the
955
- string is nul-terminated.
956
-
957
- ITEMS_WRITTEN: location to store the number of characters in the
958
- result, or ‘NULL’ .
959
-
960
- Convert a string from UTF-8 to a 32-bit fixed width representation
961
- as UCS-4. The function now performs error checking to verify that
962
- the input is valid UTF-8 (before it was documented to not do error
963
- checking).
964
-
965
- Return value: a pointer to a newly allocated UCS-4 string. This
966
- value must be deallocated by the caller.
967
-
968
- 3.3 Unicode Normalization
969
- =========================
970
-
971
- stringprep_ucs4_nfkc_normalize
972
- ------------------------------
973
-
974
- -- Function: uint32_t * stringprep_ucs4_nfkc_normalize (const uint32_t
975
- * STR, ssize_t LEN)
976
- STR: a Unicode string.
977
-
978
- LEN: length of ‘str’ array, or -1 if ‘str’ is nul-terminated.
979
-
980
- Converts a UCS4 string into canonical form, see
981
- ‘stringprep_utf8_nfkc_normalize()’ for more information.
982
-
983
- Return value: a newly allocated Unicode string, that is the NFKC
984
- normalized form of ‘str’ .
985
-
986
- stringprep_utf8_nfkc_normalize
987
- ------------------------------
988
-
989
- -- Function: char * stringprep_utf8_nfkc_normalize (const char * STR,
990
- ssize_t LEN)
991
- STR: a UTF-8 encoded string.
992
-
993
- LEN: length of ‘str’ , in bytes, or -1 if ‘str’ is nul-terminated.
994
-
995
- Converts a string into canonical form, standardizing such issues as
996
- whether a character with an accent is represented as a base
997
- character and combining accent or as a single precomposed
998
- character.
999
-
1000
- The normalization mode is NFKC (ALL COMPOSE). It standardizes
1001
- differences that do not affect the text content, such as the
1002
- above-mentioned accent representation. It standardizes the
1003
- "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to
1004
- the standard forms (in this case DIGIT THREE). Formatting
1005
- information may be lost but for most text operations such
1006
- characters should be considered the same. It returns a result with
1007
- composed forms rather than a maximally decomposed form.
1008
-
1009
- Return value: a newly allocated string, that is the NFKC normalized
1010
- form of ‘str’ .
1011
-
1012
- 3.4 Character Set Conversion
1013
- ============================
1014
-
1015
- stringprep_locale_charset
1016
- -------------------------
1017
-
1018
- -- Function: const char * stringprep_locale_charset ( VOID)
1019
-
1020
- Find out current locale charset. The function respect the CHARSET
1021
- environment variable, but typically uses nl_langinfo(CODESET) when
1022
- it is supported. It fall back on "ASCII" if CHARSET isn’t set and
1023
- nl_langinfo isn’t supported or return anything.
1024
-
1025
- Note that this function return the application’s locale’s preferred
1026
- charset (or thread’s locale’s preffered charset, if your system
1027
- support thread-specific locales). It does not return what the
1028
- system may be using. Thus, if you receive data from external
1029
- sources you cannot in general use this function to guess what
1030
- charset it is encoded in. Use stringprep_convert from the external
1031
- representation into the charset returned by this function, to have
1032
- data in the locale encoding.
1033
-
1034
- Return value: Return the character set used by the current locale.
1035
- It will never return NULL, but use "ASCII" as a fallback.
1036
-
1037
- stringprep_convert
1038
- ------------------
1039
-
1040
- -- Function: char * stringprep_convert (const char * STR, const char *
1041
- TO_CODESET, const char * FROM_CODESET)
1042
- STR: input zero-terminated string.
1043
-
1044
- TO_CODESET: name of destination character set.
1045
-
1046
- FROM_CODESET: name of origin character set, as used by ‘str’ .
1047
-
1048
- Convert the string from one character set to another using the
1049
- system’s ‘iconv()’ function.
1050
-
1051
- Return value: Returns newly allocated zero-terminated string which
1052
- is ‘str’ transcoded into to_codeset.
1053
-
1054
- stringprep_locale_to_utf8
1055
- -------------------------
1056
-
1057
- -- Function: char * stringprep_locale_to_utf8 (const char * STR)
1058
- STR: input zero terminated string.
1059
-
1060
- Convert string encoded in the locale’s character set into UTF-8 by
1061
- using ‘stringprep_convert()’ .
1062
-
1063
- Return value: Returns newly allocated zero-terminated string which
1064
- is ‘str’ transcoded into UTF-8.
1065
-
1066
- stringprep_utf8_to_locale
1067
- -------------------------
1068
-
1069
- -- Function: char * stringprep_utf8_to_locale (const char * STR)
1070
- STR: input zero terminated string.
1071
-
1072
- Convert string encoded in UTF-8 into the locale’s character set by
1073
- using ‘stringprep_convert()’ .
1074
-
1075
- Return value: Returns newly allocated zero-terminated string which
1076
- is ‘str’ transcoded into the locale’s character set.
1077
-
1078
- 
1079
- File: libidn.info, Node: Stringprep Functions, Next: Punycode Functions, Prev: Utility Functions, Up: Top
1080
-
1081
- 4 Stringprep Functions
1082
- **********************
1083
-
1084
- Stringprep describes a framework for preparing Unicode text strings in
1085
- order to increase the likelihood that string input and string comparison
1086
- work in ways that make sense for typical users throughout the world.
1087
- The stringprep protocol is useful for protocol identifier values,
1088
- company and personal names, internationalized domain names, and other
1089
- text strings.
1090
-
1091
- 4.1 Header file ‘stringprep.h’
1092
- ==============================
1093
-
1094
- To use the functions explained in this chapter, you need to include the
1095
- file ‘stringprep.h’ using:
1096
-
1097
- #include <stringprep.h>
1098
-
1099
- 4.2 Defining A Stringprep Profile
1100
- =================================
1101
-
1102
- Further types and structures are defined for applications that want to
1103
- specify their own stringprep profile. As these are fairly obscure, and
1104
- by necessity tied to the implementation, we do not document them here.
1105
- Look into the ‘stringprep.h’ header file, and the ‘profiles.c’ source
1106
- code for the details.
1107
-
1108
- 4.3 Control Flags
1109
- =================
1110
-
1111
- -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_NFKC
1112
- Disable the NFKC normalization, as well as selecting the non-NFKC
1113
- case folding tables. Usually the profile specifies BIDI and NFKC
1114
- settings, and applications should not override it unless in special
1115
- situations.
1116
-
1117
- -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_BIDI
1118
- Disable the BIDI step. Usually the profile specifies BIDI and NFKC
1119
- settings, and applications should not override it unless in special
1120
- situations.
1121
-
1122
- -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_UNASSIGNED
1123
- Make the library return with an error if string contains unassigned
1124
- characters according to profile.
1125
-
1126
- 4.4 Core Functions
1127
- ==================
1128
-
1129
- stringprep_4i
1130
- -------------
1131
-
1132
- -- Function: int stringprep_4i (uint32_t * UCS4, size_t * LEN, size_t
1133
- MAXUCS4LEN, Stringprep_profile_flags FLAGS, const
1134
- Stringprep_profile * PROFILE)
1135
- UCS4: input/output array with string to prepare.
1136
-
1137
- LEN: on input, length of input array with Unicode code points, on
1138
- exit, length of output array with Unicode code points.
1139
-
1140
- MAXUCS4LEN: maximum length of input/output array.
1141
-
1142
- FLAGS: a ‘Stringprep_profile_flags’ value, or 0.
1143
-
1144
- PROFILE: pointer to ‘Stringprep_profile’ to use.
1145
-
1146
- Prepare the input UCS-4 string according to the stringprep profile,
1147
- and write back the result to the input string.
1148
-
1149
- The input is not required to be zero terminated ( ‘ucs4’ [ ‘len’ ]
1150
- = 0). The output will not be zero terminated unless ‘ucs4’ [ ‘len’
1151
- ] = 0. Instead, see ‘stringprep_4zi()’ if your input is zero
1152
- terminated or if you want the output to be.
1153
-
1154
- Since the stringprep operation can expand the string, ‘maxucs4len’
1155
- indicate how large the buffer holding the string is. This function
1156
- will not read or write to code points outside that size.
1157
-
1158
- The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0.
1159
-
1160
- The ‘profile’ contain the ‘Stringprep_profile’ instructions to
1161
- perform. Your application can define new profiles, possibly
1162
- re-using the generic stringprep tables that always will be part of
1163
- the library, or use one of the currently supported profiles.
1164
-
1165
- Return value: Returns ‘STRINGPREP_OK’ iff successful, or an
1166
- ‘Stringprep_rc’ error code.
1167
-
1168
- stringprep_4zi
1169
- --------------
1170
-
1171
- -- Function: int stringprep_4zi (uint32_t * UCS4, size_t MAXUCS4LEN,
1172
- Stringprep_profile_flags FLAGS, const Stringprep_profile *
1173
- PROFILE)
1174
- UCS4: input/output array with zero terminated string to prepare.
1175
-
1176
- MAXUCS4LEN: maximum length of input/output array.
1177
-
1178
- FLAGS: a ‘Stringprep_profile_flags’ value, or 0.
1179
-
1180
- PROFILE: pointer to ‘Stringprep_profile’ to use.
1181
-
1182
- Prepare the input zero terminated UCS-4 string according to the
1183
- stringprep profile, and write back the result to the input string.
1184
-
1185
- Since the stringprep operation can expand the string, ‘maxucs4len’
1186
- indicate how large the buffer holding the string is. This function
1187
- will not read or write to code points outside that size.
1188
-
1189
- The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0.
1190
-
1191
- The ‘profile’ contain the ‘Stringprep_profile’ instructions to
1192
- perform. Your application can define new profiles, possibly
1193
- re-using the generic stringprep tables that always will be part of
1194
- the library, or use one of the currently supported profiles.
1195
-
1196
- Return value: Returns ‘STRINGPREP_OK’ iff successful, or an
1197
- ‘Stringprep_rc’ error code.
1198
-
1199
- stringprep
1200
- ----------
1201
-
1202
- -- Function: int stringprep (char * IN, size_t MAXLEN,
1203
- Stringprep_profile_flags FLAGS, const Stringprep_profile *
1204
- PROFILE)
1205
- IN: input/ouput array with string to prepare.
1206
-
1207
- MAXLEN: maximum length of input/output array.
1208
-
1209
- FLAGS: a ‘Stringprep_profile_flags’ value, or 0.
1210
-
1211
- PROFILE: pointer to ‘Stringprep_profile’ to use.
1212
-
1213
- Prepare the input zero terminated UTF-8 string according to the
1214
- stringprep profile, and write back the result to the input string.
1215
-
1216
- Note that you must convert strings entered in the systems locale
1217
- into UTF-8 before using this function, see
1218
- ‘stringprep_locale_to_utf8()’ .
1219
-
1220
- Since the stringprep operation can expand the string, ‘maxlen’
1221
- indicate how large the buffer holding the string is. This function
1222
- will not read or write to characters outside that size.
1223
-
1224
- The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0.
1225
-
1226
- The ‘profile’ contain the ‘Stringprep_profile’ instructions to
1227
- perform. Your application can define new profiles, possibly
1228
- re-using the generic stringprep tables that always will be part of
1229
- the library, or use one of the currently supported profiles.
1230
-
1231
- Return value: Returns ‘STRINGPREP_OK’ iff successful, or an error
1232
- code.
1233
-
1234
- stringprep_profile
1235
- ------------------
1236
-
1237
- -- Function: int stringprep_profile (const char * IN, char ** OUT,
1238
- const char * PROFILE, Stringprep_profile_flags FLAGS)
1239
- IN: input array with UTF-8 string to prepare.
1240
-
1241
- OUT: output variable with pointer to newly allocate string.
1242
-
1243
- PROFILE: name of stringprep profile to use.
1244
-
1245
- FLAGS: a ‘Stringprep_profile_flags’ value, or 0.
1246
-
1247
- Prepare the input zero terminated UTF-8 string according to the
1248
- stringprep profile, and return the result in a newly allocated
1249
- variable.
1250
-
1251
- Note that you must convert strings entered in the systems locale
1252
- into UTF-8 before using this function, see
1253
- ‘stringprep_locale_to_utf8()’ .
1254
-
1255
- The output ‘out’ variable must be deallocated by the caller.
1256
-
1257
- The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0.
1258
-
1259
- The ‘profile’ specifies the name of the stringprep profile to use.
1260
- It must be one of the internally supported stringprep profiles.
1261
-
1262
- Return value: Returns ‘STRINGPREP_OK’ iff successful, or an error
1263
- code.
1264
-
1265
- 4.5 Error Handling
1266
- ==================
1267
-
1268
- stringprep_strerror
1269
- -------------------
1270
-
1271
- -- Function: const char * stringprep_strerror (Stringprep_rc RC)
1272
- RC: a ‘Stringprep_rc’ return code.
1273
-
1274
- Convert a return code integer to a text string. This string can be
1275
- used to output a diagnostic message to the user.
1276
-
1277
- *STRINGPREP_OK:* Successful operation. This value is guaranteed to
1278
- always be zero, the remaining ones are only guaranteed to hold
1279
- non-zero values, for logical comparison purposes.
1280
-
1281
- *STRINGPREP_CONTAINS_UNASSIGNED:* String contain unassigned Unicode
1282
- code points, which is forbidden by the profile.
1283
-
1284
- *STRINGPREP_CONTAINS_PROHIBITED:* String contain code points
1285
- prohibited by the profile.
1286
-
1287
- *STRINGPREP_BIDI_BOTH_L_AND_RAL:* String contain code points with
1288
- conflicting bidirection category.
1289
-
1290
- *STRINGPREP_BIDI_LEADTRAIL_NOT_RAL:* Leading and trailing character
1291
- in string not of proper bidirectional category.
1292
-
1293
- *STRINGPREP_BIDI_CONTAINS_PROHIBITED:* Contains prohibited code
1294
- points detected by bidirectional code.
1295
-
1296
- *STRINGPREP_TOO_SMALL_BUFFER:* Buffer handed to function was too
1297
- small. This usually indicate a problem in the calling application.
1298
-
1299
- *STRINGPREP_PROFILE_ERROR:* The stringprep profile was
1300
- inconsistent. This usually indicate an internal error in the
1301
- library.
1302
-
1303
- *STRINGPREP_FLAG_ERROR:* The supplied flag conflicted with profile.
1304
- This usually indicate a problem in the calling application.
1305
-
1306
- *STRINGPREP_UNKNOWN_PROFILE:* The supplied profile name was not
1307
- known to the library.
1308
-
1309
- *STRINGPREP_ICONV_ERROR:* Could not convert string in locale
1310
- encoding.
1311
-
1312
- *STRINGPREP_NFKC_FAILED:* The Unicode NFKC operation failed. This
1313
- usually indicate an internal error in the library.
1314
-
1315
- *STRINGPREP_MALLOC_ERROR:* The ‘malloc()’ was out of memory. This
1316
- is usually a fatal error.
1317
-
1318
- Return value: Returns a pointer to a statically allocated string
1319
- containing a description of the error with the return code ‘rc’ .
1320
-
1321
- 4.6 Stringprep Profile Macros
1322
- =============================
1323
-
1324
- -- Function: int stringprep_nameprep_no_unassigned (char * IN, int
1325
- MAXLEN)
1326
-
1327
- IN: input/ouput array with string to prepare.
1328
-
1329
- MAXLEN: maximum length of input/output array.
1330
-
1331
- Prepare the input UTF-8 string according to the nameprep profile.
1332
- The AllowUnassigned flag is false, use ‘stringprep_nameprep’ for
1333
- true AllowUnassigned. Returns 0 iff successful, or an error code.
1334
-
1335
- -- Function: int stringprep_iscsi (char * IN, int MAXLEN)
1336
-
1337
- IN: input/ouput array with string to prepare.
1338
-
1339
- MAXLEN: maximum length of input/output array.
1340
-
1341
- Prepare the input UTF-8 string according to the draft iSCSI
1342
- stringprep profile. Returns 0 iff successful, or an error code.
1343
-
1344
- -- Function: int stringprep_plain (char * IN, int MAXLEN)
1345
-
1346
- IN: input/ouput array with string to prepare.
1347
-
1348
- MAXLEN: maximum length of input/output array.
1349
-
1350
- Prepare the input UTF-8 string according to the draft SASL
1351
- ANONYMOUS profile. Returns 0 iff successful, or an error code.
1352
-
1353
- -- Function: int stringprep_xmpp_nodeprep (char * IN, int MAXLEN)
1354
-
1355
- IN: input/ouput array with string to prepare.
1356
-
1357
- MAXLEN: maximum length of input/output array.
1358
-
1359
- Prepare the input UTF-8 string according to the draft XMPP node
1360
- identifier profile. Returns 0 iff successful, or an error code.
1361
-
1362
- -- Function: int stringprep_xmpp_resourceprep (char * IN, int MAXLEN)
1363
-
1364
- IN: input/ouput array with string to prepare.
1365
-
1366
- MAXLEN: maximum length of input/output array.
1367
-
1368
- Prepare the input UTF-8 string according to the draft XMPP resource
1369
- identifier profile. Returns 0 iff successful, or an error code.
1370
-
1371
- 
1372
- File: libidn.info, Node: Punycode Functions, Next: IDNA Functions, Prev: Stringprep Functions, Up: Top
1373
-
1374
- 5 Punycode Functions
1375
- ********************
1376
-
1377
- Punycode is a simple and efficient transfer encoding syntax designed for
1378
- use with Internationalized Domain Names in Applications. It uniquely
1379
- and reversibly transforms a Unicode string into an ASCII string. ASCII
1380
- characters in the Unicode string are represented literally, and
1381
- non-ASCII characters are represented by ASCII characters that are
1382
- allowed in host name labels (letters, digits, and hyphens). A general
1383
- algorithm called Bootstring allows a string of basic code points to
1384
- uniquely represent any string of code points drawn from a larger set.
1385
- Punycode is an instance of Bootstring that uses particular parameter
1386
- values, appropriate for IDNA.
1387
-
1388
- 5.1 Header file ‘punycode.h’
1389
- ============================
1390
-
1391
- To use the functions explained in this chapter, you need to include the
1392
- file ‘punycode.h’ using:
1393
-
1394
- #include <punycode.h>
1395
-
1396
- 5.2 Unicode Code Point Data Type
1397
- ================================
1398
-
1399
- The punycode function uses a special type to denote Unicode code points.
1400
- It is guaranteed to always be a 32 bit unsigned integer.
1401
-
1402
- -- Punycode Unicode code point: uint32_t punycode_uint
1403
- A unsigned integer that hold Unicode code points.
1404
-
1405
- 5.3 Core Functions
1406
- ==================
1407
-
1408
- Note that the current implementation will fail if the ‘input_length’
1409
- exceed 4294967295 (the size of ‘punycode_uint’). This restriction may
1410
- be removed in the future. Meanwhile applications are encouraged to not
1411
- depend on this problem, and use ‘sizeof’ to initialize ‘input_length’
1412
- and ‘output_length’.
1413
-
1414
- The functions provided are the following two entry points:
1415
-
1416
- punycode_encode
1417
- ---------------
1418
-
1419
- -- Function: int punycode_encode (size_t INPUT_LENGTH, const
1420
- punycode_uint [] INPUT, const unsigned char [] CASE_FLAGS,
1421
- size_t * OUTPUT_LENGTH, char [] OUTPUT)
1422
- INPUT_LENGTH: The number of code points in the ‘input’ array and
1423
- the number of flags in the ‘case_flags’ array.
1424
-
1425
- INPUT: An array of code points. They are presumed to be Unicode
1426
- code points, but that is not strictly REQUIRED. The array contains
1427
- code points, not code units. UTF-16 uses code units D800 through
1428
- DFFF to refer to code points 10000..10FFFF. The code points
1429
- D800..DFFF do not occur in any valid Unicode string. The code
1430
- points that can occur in Unicode strings (0..D7FF and E000..10FFFF)
1431
- are also called Unicode scalar values.
1432
-
1433
- CASE_FLAGS: A ‘NULL’ pointer or an array of boolean values parallel
1434
- to the ‘input’ array. Nonzero (true, flagged) suggests that the
1435
- corresponding Unicode character be forced to uppercase after being
1436
- decoded (if possible), and zero (false, unflagged) suggests that it
1437
- be forced to lowercase (if possible). ASCII code points (0..7F)
1438
- are encoded literally, except that ASCII letters are forced to
1439
- uppercase or lowercase according to the corresponding case flags.
1440
- If ‘case_flags’ is a ‘NULL’ pointer then ASCII letters are left as
1441
- they are, and other code points are treated as unflagged.
1442
-
1443
- OUTPUT_LENGTH: The caller passes in the maximum number of ASCII
1444
- code points that it can receive. On successful return it will
1445
- contain the number of ASCII code points actually output.
1446
-
1447
- OUTPUT: An array of ASCII code points. It is *not*
1448
- null-terminated; it will contain zeros if and only if the ‘input’
1449
- contains zeros. (Of course the caller can leave room for a
1450
- terminator and add one if needed.)
1451
-
1452
- Converts a sequence of code points (presumed to be Unicode code
1453
- points) to Punycode.
1454
-
1455
- Return value: The return value can be any of the ‘Punycode_status’
1456
- values defined above except ‘PUNYCODE_BAD_INPUT’ . If not
1457
- ‘PUNYCODE_SUCCESS’ , then ‘output_size’ and ‘output’ might contain
1458
- garbage.
1459
-
1460
- punycode_decode
1461
- ---------------
1462
-
1463
- -- Function: int punycode_decode (size_t INPUT_LENGTH, const char []
1464
- INPUT, size_t * OUTPUT_LENGTH, punycode_uint [] OUTPUT,
1465
- unsigned char [] CASE_FLAGS)
1466
- INPUT_LENGTH: The number of ASCII code points in the ‘input’ array.
1467
-
1468
- INPUT: An array of ASCII code points (0..7F).
1469
-
1470
- OUTPUT_LENGTH: The caller passes in the maximum number of code
1471
- points that it can receive into the ‘output’ array (which is also
1472
- the maximum number of flags that it can receive into the
1473
- ‘case_flags’ array, if ‘case_flags’ is not a ‘NULL’ pointer). On
1474
- successful return it will contain the number of code points
1475
- actually output (which is also the number of flags actually output,
1476
- if case_flags is not a null pointer). The decoder will never need
1477
- to output more code points than the number of ASCII code points in
1478
- the input, because of the way the encoding is defined. The number
1479
- of code points output cannot exceed the maximum possible value of a
1480
- punycode_uint, even if the supplied ‘output_length’ is greater than
1481
- that.
1482
-
1483
- OUTPUT: An array of code points like the input argument of
1484
- ‘punycode_encode()’ (see above).
1485
-
1486
- CASE_FLAGS: A ‘NULL’ pointer (if the flags are not needed by the
1487
- caller) or an array of boolean values parallel to the ‘output’
1488
- array. Nonzero (true, flagged) suggests that the corresponding
1489
- Unicode character be forced to uppercase by the caller (if
1490
- possible), and zero (false, unflagged) suggests that it be forced
1491
- to lowercase (if possible). ASCII code points (0..7F) are output
1492
- already in the proper case, but their flags will be set
1493
- appropriately so that applying the flags would be harmless.
1494
-
1495
- Converts Punycode to a sequence of code points (presumed to be
1496
- Unicode code points).
1497
-
1498
- Return value: The return value can be any of the ‘Punycode_status’
1499
- values defined above. If not ‘PUNYCODE_SUCCESS’ , then
1500
- ‘output_length’ , ‘output’ , and ‘case_flags’ might contain
1501
- garbage.
1502
-
1503
- 5.4 Error Handling
1504
- ==================
1505
-
1506
- punycode_strerror
1507
- -----------------
1508
-
1509
- -- Function: const char * punycode_strerror (Punycode_status RC)
1510
- RC: an ‘Punycode_status’ return code.
1511
-
1512
- Convert a return code integer to a text string. This string can be
1513
- used to output a diagnostic message to the user.
1514
-
1515
- *PUNYCODE_SUCCESS:* Successful operation. This value is guaranteed
1516
- to always be zero, the remaining ones are only guaranteed to hold
1517
- non-zero values, for logical comparison purposes.
1518
-
1519
- *PUNYCODE_BAD_INPUT:* Input is invalid.
1520
-
1521
- *PUNYCODE_BIG_OUTPUT:* Output would exceed the space provided.
1522
-
1523
- *PUNYCODE_OVERFLOW:* Input needs wider integers to process.
1524
-
1525
- Return value: Returns a pointer to a statically allocated string
1526
- containing a description of the error with the return code ‘rc’ .
1527
-
1528
- 
1529
- File: libidn.info, Node: IDNA Functions, Next: TLD Functions, Prev: Punycode Functions, Up: Top
1530
-
1531
- 6 IDNA Functions
1532
- ****************
1533
-
1534
- Until now, there has been no standard method for domain names to use
1535
- characters outside the ASCII repertoire. The IDNA document defines
1536
- internationalized domain names (IDNs) and a mechanism called IDNA for
1537
- handling them in a standard fashion. IDNs use characters drawn from a
1538
- large repertoire (Unicode), but IDNA allows the non-ASCII characters to
1539
- be represented using only the ASCII characters already allowed in
1540
- so-called host names today. This backward-compatible representation is
1541
- required in existing protocols like DNS, so that IDNs can be introduced
1542
- with no changes to the existing infrastructure. IDNA is only meant for
1543
- processing domain names, not free text.
1544
-
1545
- 6.1 Header file ‘idna.h’
1546
- ========================
1547
-
1548
- To use the functions explained in this chapter, you need to include the
1549
- file ‘idna.h’ using:
1550
-
1551
- #include <idna.h>
1552
-
1553
- 6.2 Control Flags
1554
- =================
1555
-
1556
- The IDNA ‘flags’ parameter can take on the following values, or a
1557
- bit-wise inclusive or of any subset of the parameters:
1558
-
1559
- -- Return code: Idna_flags IDNA_ALLOW_UNASSIGNED
1560
- Allow unassigned Unicode code points.
1561
-
1562
- -- Return code: Idna_flags IDNA_USE_STD3_ASCII_RULES
1563
- Check output to make sure it is a STD3 conforming host name.
1564
-
1565
- 6.3 Prefix String
1566
- =================
1567
-
1568
- -- Macro: #define IDNA_ACE_PREFIX
1569
- String with the official IDNA prefix, ‘xn--’.
1570
-
1571
- 6.4 Core Functions
1572
- ==================
1573
-
1574
- The idea behind the IDNA function names are as follows: the
1575
- ‘idna_to_ascii_4i’ and ‘idna_to_unicode_44i’ functions are the core IDNA
1576
- primitives. The ‘4’ indicate that the function takes UCS-4 strings
1577
- (i.e., Unicode code points encoded in a 32-bit unsigned integer type) of
1578
- the specified length. The ‘i’ indicate that the data is written
1579
- “inline” into the buffer. This means the caller is responsible for
1580
- allocating (and de-allocating) the string, and providing the library
1581
- with the allocated length of the string. The output length is written
1582
- in the output length variable. The remaining functions all contain the
1583
- ‘z’ indicator, which means the strings are zero terminated. All output
1584
- strings are allocated by the library, and must be de-allocated by the
1585
- caller. The ‘4’ indicator again means that the string is UCS-4, the ‘8’
1586
- means the strings are UTF-8 and the ‘l’ indicator means the strings are
1587
- encoded in the encoding used by the current locale.
1588
-
1589
- The functions provided are the following entry points:
1590
-
1591
- idna_to_ascii_4i
1592
- ----------------
1593
-
1594
- -- Function: int idna_to_ascii_4i (const uint32_t * IN, size_t INLEN,
1595
- char * OUT, int FLAGS)
1596
- IN: input array with unicode code points.
1597
-
1598
- INLEN: length of input array with unicode code points.
1599
-
1600
- OUT: output zero terminated string that must have room for at least
1601
- 63 characters plus the terminating zero.
1602
-
1603
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1604
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1605
-
1606
- The ToASCII operation takes a sequence of Unicode code points that
1607
- make up one domain label and transforms it into a sequence of code
1608
- points in the ASCII range (0..7F). If ToASCII succeeds, the
1609
- original sequence and the resulting sequence are equivalent labels.
1610
-
1611
- It is important to note that the ToASCII operation can fail.
1612
- ToASCII fails if any step of it fails. If any step of the ToASCII
1613
- operation fails on any label in a domain name, that domain name
1614
- MUST NOT be used as an internationalized domain name. The method
1615
- for deadling with this failure is application-specific.
1616
-
1617
- The inputs to ToASCII are a sequence of code points, the
1618
- AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output
1619
- of ToASCII is either a sequence of ASCII code points or a failure
1620
- condition.
1621
-
1622
- ToASCII never alters a sequence of code points that are all in the
1623
- ASCII range to begin with (although it could fail). Applying the
1624
- ToASCII operation multiple times has exactly the same effect as
1625
- applying it just once.
1626
-
1627
- Return value: Returns 0 on success, or an ‘Idna_rc’ error code.
1628
-
1629
- idna_to_unicode_44i
1630
- -------------------
1631
-
1632
- -- Function: int idna_to_unicode_44i (const uint32_t * IN, size_t
1633
- INLEN, uint32_t * OUT, size_t * OUTLEN, int FLAGS)
1634
- IN: input array with unicode code points.
1635
-
1636
- INLEN: length of input array with unicode code points.
1637
-
1638
- OUT: output array with unicode code points.
1639
-
1640
- OUTLEN: on input, maximum size of output array with unicode code
1641
- points, on exit, actual size of output array with unicode code
1642
- points.
1643
-
1644
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1645
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1646
-
1647
- The ToUnicode operation takes a sequence of Unicode code points
1648
- that make up one domain label and returns a sequence of Unicode
1649
- code points. If the input sequence is a label in ACE form, then
1650
- the result is an equivalent internationalized label that is not in
1651
- ACE form, otherwise the original sequence is returned unaltered.
1652
-
1653
- ToUnicode never fails. If any step fails, then the original input
1654
- sequence is returned immediately in that step.
1655
-
1656
- The Punycode decoder can never output more code points than it
1657
- inputs, but Nameprep can, and therefore ToUnicode can. Note that
1658
- the number of octets needed to represent a sequence of code points
1659
- depends on the particular character encoding used.
1660
-
1661
- The inputs to ToUnicode are a sequence of code points, the
1662
- AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output
1663
- of ToUnicode is always a sequence of Unicode code points.
1664
-
1665
- Return value: Returns ‘Idna_rc’ error condition, but it must only
1666
- be used for debugging purposes. The output buffer is always
1667
- guaranteed to contain the correct data according to the
1668
- specification (sans malloc induced errors). NB! This means that
1669
- you normally ignore the return code from this function, as checking
1670
- it means breaking the standard.
1671
-
1672
- 6.5 Simplified ToASCII Interface
1673
- ================================
1674
-
1675
- idna_to_ascii_4z
1676
- ----------------
1677
-
1678
- -- Function: int idna_to_ascii_4z (const uint32_t * INPUT, char **
1679
- OUTPUT, int FLAGS)
1680
- INPUT: zero terminated input Unicode string.
1681
-
1682
- OUTPUT: pointer to newly allocated output string.
1683
-
1684
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1685
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1686
-
1687
- Convert UCS-4 domain name to ASCII string. The domain name may
1688
- contain several labels, separated by dots. The output buffer must
1689
- be deallocated by the caller.
1690
-
1691
- Return value: Returns ‘IDNA_SUCCESS’ on success, or error code.
1692
-
1693
- idna_to_ascii_8z
1694
- ----------------
1695
-
1696
- -- Function: int idna_to_ascii_8z (const char * INPUT, char ** OUTPUT,
1697
- int FLAGS)
1698
- INPUT: zero terminated input UTF-8 string.
1699
-
1700
- OUTPUT: pointer to newly allocated output string.
1701
-
1702
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1703
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1704
-
1705
- Convert UTF-8 domain name to ASCII string. The domain name may
1706
- contain several labels, separated by dots. The output buffer must
1707
- be deallocated by the caller.
1708
-
1709
- Return value: Returns ‘IDNA_SUCCESS’ on success, or error code.
1710
-
1711
- idna_to_ascii_lz
1712
- ----------------
1713
-
1714
- -- Function: int idna_to_ascii_lz (const char * INPUT, char ** OUTPUT,
1715
- int FLAGS)
1716
- INPUT: zero terminated input string encoded in the current locale’s
1717
- character set.
1718
-
1719
- OUTPUT: pointer to newly allocated output string.
1720
-
1721
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1722
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1723
-
1724
- Convert domain name in the locale’s encoding to ASCII string. The
1725
- domain name may contain several labels, separated by dots. The
1726
- output buffer must be deallocated by the caller.
1727
-
1728
- Return value: Returns ‘IDNA_SUCCESS’ on success, or error code.
1729
-
1730
- 6.6 Simplified ToUnicode Interface
1731
- ==================================
1732
-
1733
- idna_to_unicode_4z4z
1734
- --------------------
1735
-
1736
- -- Function: int idna_to_unicode_4z4z (const uint32_t * INPUT, uint32_t
1737
- ** OUTPUT, int FLAGS)
1738
- INPUT: zero-terminated Unicode string.
1739
-
1740
- OUTPUT: pointer to newly allocated output Unicode string.
1741
-
1742
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1743
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1744
-
1745
- Convert possibly ACE encoded domain name in UCS-4 format into a
1746
- UCS-4 string. The domain name may contain several labels,
1747
- separated by dots. The output buffer must be deallocated by the
1748
- caller.
1749
-
1750
- Return value: Returns ‘IDNA_SUCCESS’ on success, or error code.
1751
-
1752
- idna_to_unicode_8z4z
1753
- --------------------
1754
-
1755
- -- Function: int idna_to_unicode_8z4z (const char * INPUT, uint32_t **
1756
- OUTPUT, int FLAGS)
1757
- INPUT: zero-terminated UTF-8 string.
1758
-
1759
- OUTPUT: pointer to newly allocated output Unicode string.
1760
-
1761
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1762
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1763
-
1764
- Convert possibly ACE encoded domain name in UTF-8 format into a
1765
- UCS-4 string. The domain name may contain several labels,
1766
- separated by dots. The output buffer must be deallocated by the
1767
- caller.
1768
-
1769
- Return value: Returns ‘IDNA_SUCCESS’ on success, or error code.
1770
-
1771
- idna_to_unicode_8z8z
1772
- --------------------
1773
-
1774
- -- Function: int idna_to_unicode_8z8z (const char * INPUT, char **
1775
- OUTPUT, int FLAGS)
1776
- INPUT: zero-terminated UTF-8 string.
1777
-
1778
- OUTPUT: pointer to newly allocated output UTF-8 string.
1779
-
1780
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1781
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1782
-
1783
- Convert possibly ACE encoded domain name in UTF-8 format into a
1784
- UTF-8 string. The domain name may contain several labels,
1785
- separated by dots. The output buffer must be deallocated by the
1786
- caller.
1787
-
1788
- Return value: Returns ‘IDNA_SUCCESS’ on success, or error code.
1789
-
1790
- idna_to_unicode_8zlz
1791
- --------------------
1792
-
1793
- -- Function: int idna_to_unicode_8zlz (const char * INPUT, char **
1794
- OUTPUT, int FLAGS)
1795
- INPUT: zero-terminated UTF-8 string.
1796
-
1797
- OUTPUT: pointer to newly allocated output string encoded in the
1798
- current locale’s character set.
1799
-
1800
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1801
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1802
-
1803
- Convert possibly ACE encoded domain name in UTF-8 format into a
1804
- string encoded in the current locale’s character set. The domain
1805
- name may contain several labels, separated by dots. The output
1806
- buffer must be deallocated by the caller.
1807
-
1808
- Return value: Returns ‘IDNA_SUCCESS’ on success, or error code.
1809
-
1810
- idna_to_unicode_lzlz
1811
- --------------------
1812
-
1813
- -- Function: int idna_to_unicode_lzlz (const char * INPUT, char **
1814
- OUTPUT, int FLAGS)
1815
- INPUT: zero-terminated string encoded in the current locale’s
1816
- character set.
1817
-
1818
- OUTPUT: pointer to newly allocated output string encoded in the
1819
- current locale’s character set.
1820
-
1821
- FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or
1822
- ‘IDNA_USE_STD3_ASCII_RULES’ .
1823
-
1824
- Convert possibly ACE encoded domain name in the locale’s character
1825
- set into a string encoded in the current locale’s character set.
1826
- The domain name may contain several labels, separated by dots. The
1827
- output buffer must be deallocated by the caller.
1828
-
1829
- Return value: Returns ‘IDNA_SUCCESS’ on success, or error code.
1830
-
1831
- 6.7 Error Handling
1832
- ==================
1833
-
1834
- idna_strerror
1835
- -------------
1836
-
1837
- -- Function: const char * idna_strerror (Idna_rc RC)
1838
- RC: an ‘Idna_rc’ return code.
1839
-
1840
- Convert a return code integer to a text string. This string can be
1841
- used to output a diagnostic message to the user.
1842
-
1843
- *IDNA_SUCCESS:* Successful operation. This value is guaranteed to
1844
- always be zero, the remaining ones are only guaranteed to hold
1845
- non-zero values, for logical comparison purposes.
1846
-
1847
- *IDNA_STRINGPREP_ERROR:* Error during string preparation.
1848
-
1849
- *IDNA_PUNYCODE_ERROR:* Error during punycode operation.
1850
-
1851
- *IDNA_CONTAINS_NON_LDH:* For IDNA_USE_STD3_ASCII_RULES, indicate
1852
- that the string contains non-LDH ASCII characters.
1853
-
1854
- *IDNA_CONTAINS_MINUS:* For IDNA_USE_STD3_ASCII_RULES, indicate that
1855
- the string contains a leading or trailing hyphen-minus (U+002D).
1856
-
1857
- *IDNA_INVALID_LENGTH:* The final output string is not within the
1858
- (inclusive) range 1 to 63 characters.
1859
-
1860
- *IDNA_NO_ACE_PREFIX:* The string does not contain the ACE prefix
1861
- (for ToUnicode).
1862
-
1863
- *IDNA_ROUNDTRIP_VERIFY_ERROR:* The ToASCII operation on output
1864
- string does not equal the input.
1865
-
1866
- *IDNA_CONTAINS_ACE_PREFIX:* The input contains the ACE prefix (for
1867
- ToASCII).
1868
-
1869
- *IDNA_ICONV_ERROR:* Could not convert string in locale encoding.
1870
-
1871
- *IDNA_MALLOC_ERROR:* Could not allocate buffer (this is typically a
1872
- fatal error).
1873
-
1874
- *IDNA_DLOPEN_ERROR:* Could not dlopen the libcidn DSO (only used
1875
- internally in libc).
1876
-
1877
- Return value: Returns a pointer to a statically allocated string
1878
- containing a description of the error with the return code ‘rc’ .
1879
-
1880
- 
1881
- File: libidn.info, Node: TLD Functions, Next: PR29 Functions, Prev: IDNA Functions, Up: Top
1882
-
1883
- 7 TLD Functions
1884
- ***************
1885
-
1886
- Organizations that manage some Top Level Domains (TLDs) have published
1887
- tables with characters they accept within the domain. The reason may be
1888
- to reduce complexity that come from using the full Unicode range, and to
1889
- protect themselves from future (backwards incompatible) changes in the
1890
- IDN or Unicode specifications. Libidn implement an infrastructure for
1891
- defining and checking strings against such tables. Libidn also ship
1892
- some tables from TLDs that we have managed to get permission to use them
1893
- from. Because these tables are even less static than Unicode or
1894
- StringPrep tables, it is likely that they will be updated from time to
1895
- time (even in backwards incompatible ways). The Libidn interface
1896
- provide a “version” field for each TLD table, which can be compared for
1897
- equality to guarantee the same operation over time.
1898
-
1899
- From a design point of view, you can regard the TLD tables for IDN as
1900
- the “localization” step that come after the “internationalization” step
1901
- provided by the IETF standards.
1902
-
1903
- The TLD functionality rely on up-to-date tables. The latest version
1904
- of Libidn aim to provide these, but tables with unclear copying
1905
- conditions, or generally experimental tables, are not included. Some
1906
- such tables can be found at <https://github.com/gnuthor/tldchk>.
1907
-
1908
- 7.1 Header file ‘tld.h’
1909
- =======================
1910
-
1911
- To use the functions explained in this chapter, you need to include the
1912
- file ‘tld.h’ using:
1913
-
1914
- #include <tld.h>
1915
-
1916
- 7.2 Core Functions
1917
- ==================
1918
-
1919
- tld_check_4t
1920
- ------------
1921
-
1922
- -- Function: int tld_check_4t (const uint32_t * IN, size_t INLEN,
1923
- size_t * ERRPOS, const Tld_table * TLD)
1924
- IN: Array of unicode code points to process. Does not need to be
1925
- zero terminated.
1926
-
1927
- INLEN: Number of unicode code points.
1928
-
1929
- ERRPOS: Position of offending character is returned here.
1930
-
1931
- TLD: A ‘Tld_table’ data structure representing the restrictions for
1932
- which the input should be tested.
1933
-
1934
- Test each of the code points in ‘in’ for whether or not they are
1935
- allowed by the data structure in ‘tld’ , return the position of the
1936
- first character for which this is not the case in ‘errpos’ .
1937
-
1938
- Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all code
1939
- points are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a
1940
- character is not allowed, or additional error codes on general
1941
- failure conditions.
1942
-
1943
- tld_check_4tz
1944
- -------------
1945
-
1946
- -- Function: int tld_check_4tz (const uint32_t * IN, size_t * ERRPOS,
1947
- const Tld_table * TLD)
1948
- IN: Zero terminated array of unicode code points to process.
1949
-
1950
- ERRPOS: Position of offending character is returned here.
1951
-
1952
- TLD: A ‘Tld_table’ data structure representing the restrictions for
1953
- which the input should be tested.
1954
-
1955
- Test each of the code points in ‘in’ for whether or not they are
1956
- allowed by the data structure in ‘tld’ , return the position of the
1957
- first character for which this is not the case in ‘errpos’ .
1958
-
1959
- Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all code
1960
- points are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a
1961
- character is not allowed, or additional error codes on general
1962
- failure conditions.
1963
-
1964
- 7.3 Utility Functions
1965
- =====================
1966
-
1967
- tld_get_4
1968
- ---------
1969
-
1970
- -- Function: int tld_get_4 (const uint32_t * IN, size_t INLEN, char **
1971
- OUT)
1972
- IN: Array of unicode code points to process. Does not need to be
1973
- zero terminated.
1974
-
1975
- INLEN: Number of unicode code points.
1976
-
1977
- OUT: Zero terminated ascii result string pointer.
1978
-
1979
- Isolate the top-level domain of ‘in’ and return it as an ASCII
1980
- string in ‘out’ .
1981
-
1982
- Return value: Return ‘TLD_SUCCESS’ on success, or the corresponding
1983
- ‘Tld_rc’ error code otherwise.
1984
-
1985
- tld_get_4z
1986
- ----------
1987
-
1988
- -- Function: int tld_get_4z (const uint32_t * IN, char ** OUT)
1989
- IN: Zero terminated array of unicode code points to process.
1990
-
1991
- OUT: Zero terminated ascii result string pointer.
1992
-
1993
- Isolate the top-level domain of ‘in’ and return it as an ASCII
1994
- string in ‘out’ .
1995
-
1996
- Return value: Return ‘TLD_SUCCESS’ on success, or the corresponding
1997
- ‘Tld_rc’ error code otherwise.
1998
-
1999
- tld_get_z
2000
- ---------
2001
-
2002
- -- Function: int tld_get_z (const char * IN, char ** OUT)
2003
- IN: Zero terminated character array to process.
2004
-
2005
- OUT: Zero terminated ascii result string pointer.
2006
-
2007
- Isolate the top-level domain of ‘in’ and return it as an ASCII
2008
- string in ‘out’ . The input string ‘in’ may be UTF-8, ISO-8859-1
2009
- or any ASCII compatible character encoding.
2010
-
2011
- Return value: Return ‘TLD_SUCCESS’ on success, or the corresponding
2012
- ‘Tld_rc’ error code otherwise.
2013
-
2014
- tld_get_table
2015
- -------------
2016
-
2017
- -- Function: const Tld_table * tld_get_table (const char * TLD, const
2018
- Tld_table ** TABLES)
2019
- TLD: TLD name (e.g. "com") as zero terminated ASCII byte string.
2020
-
2021
- TABLES: Zero terminated array of ‘Tld_table’ info-structures for
2022
- TLDs.
2023
-
2024
- Get the TLD table for a named TLD by searching through the given
2025
- TLD table array.
2026
-
2027
- Return value: Return structure corresponding to TLD ‘tld’ by going
2028
- thru ‘tables’ , or return ‘NULL’ if no such structure is found.
2029
-
2030
- tld_default_table
2031
- -----------------
2032
-
2033
- -- Function: const Tld_table * tld_default_table (const char * TLD,
2034
- const Tld_table ** OVERRIDES)
2035
- TLD: TLD name (e.g. "com") as zero terminated ASCII byte string.
2036
-
2037
- OVERRIDES: Additional zero terminated array of ‘Tld_table’
2038
- info-structures for TLDs, or ‘NULL’ to only use library deault
2039
- tables.
2040
-
2041
- Get the TLD table for a named TLD, using the internal defaults,
2042
- possibly overrided by the (optional) supplied tables.
2043
-
2044
- Return value: Return structure corresponding to TLD ‘tld_str’ ,
2045
- first looking through ‘overrides’ then thru built-in list, or
2046
- ‘NULL’ if no such structure found.
2047
-
2048
- 7.4 High-Level Wrapper Functions
2049
- ================================
2050
-
2051
- tld_check_4
2052
- -----------
2053
-
2054
- -- Function: int tld_check_4 (const uint32_t * IN, size_t INLEN, size_t
2055
- * ERRPOS, const Tld_table ** OVERRIDES)
2056
- IN: Array of unicode code points to process. Does not need to be
2057
- zero terminated.
2058
-
2059
- INLEN: Number of unicode code points.
2060
-
2061
- ERRPOS: Position of offending character is returned here.
2062
-
2063
- OVERRIDES: A ‘Tld_table’ array of additional domain restriction
2064
- structures that complement and supersede the built-in information.
2065
-
2066
- Test each of the code points in ‘in’ for whether or not they are
2067
- allowed by the information in ‘overrides’ or by the built-in TLD
2068
- restriction data. When data for the same TLD is available both
2069
- internally and in ‘overrides’ , the information in ‘overrides’
2070
- takes precedence. If several entries for a specific TLD are found,
2071
- the first one is used. If ‘overrides’ is ‘NULL’ , only the
2072
- built-in information is used. The position of the first offending
2073
- character is returned in ‘errpos’ .
2074
-
2075
- Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all code
2076
- points are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a
2077
- character is not allowed, or additional error codes on general
2078
- failure conditions.
2079
-
2080
- tld_check_4z
2081
- ------------
2082
-
2083
- -- Function: int tld_check_4z (const uint32_t * IN, size_t * ERRPOS,
2084
- const Tld_table ** OVERRIDES)
2085
- IN: Zero-terminated array of unicode code points to process.
2086
-
2087
- ERRPOS: Position of offending character is returned here.
2088
-
2089
- OVERRIDES: A ‘Tld_table’ array of additional domain restriction
2090
- structures that complement and supersede the built-in information.
2091
-
2092
- Test each of the code points in ‘in’ for whether or not they are
2093
- allowed by the information in ‘overrides’ or by the built-in TLD
2094
- restriction data. When data for the same TLD is available both
2095
- internally and in ‘overrides’ , the information in ‘overrides’
2096
- takes precedence. If several entries for a specific TLD are found,
2097
- the first one is used. If ‘overrides’ is ‘NULL’ , only the
2098
- built-in information is used. The position of the first offending
2099
- character is returned in ‘errpos’ .
2100
-
2101
- Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all code
2102
- points are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a
2103
- character is not allowed, or additional error codes on general
2104
- failure conditions.
2105
-
2106
- tld_check_8z
2107
- ------------
2108
-
2109
- -- Function: int tld_check_8z (const char * IN, size_t * ERRPOS, const
2110
- Tld_table ** OVERRIDES)
2111
- IN: Zero-terminated UTF8 string to process.
2112
-
2113
- ERRPOS: Position of offending character is returned here.
2114
-
2115
- OVERRIDES: A ‘Tld_table’ array of additional domain restriction
2116
- structures that complement and supersede the built-in information.
2117
-
2118
- Test each of the characters in ‘in’ for whether or not they are
2119
- allowed by the information in ‘overrides’ or by the built-in TLD
2120
- restriction data. When data for the same TLD is available both
2121
- internally and in ‘overrides’ , the information in ‘overrides’
2122
- takes precedence. If several entries for a specific TLD are found,
2123
- the first one is used. If ‘overrides’ is ‘NULL’ , only the
2124
- built-in information is used. The position of the first offending
2125
- character is returned in ‘errpos’ . Note that the error position
2126
- refers to the decoded character offset rather than the byte
2127
- position in the string.
2128
-
2129
- Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all
2130
- characters are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a
2131
- character is not allowed, or additional error codes on general
2132
- failure conditions.
2133
-
2134
- tld_check_lz
2135
- ------------
2136
-
2137
- -- Function: int tld_check_lz (const char * IN, size_t * ERRPOS, const
2138
- Tld_table ** OVERRIDES)
2139
- IN: Zero-terminated string in the current locales encoding to
2140
- process.
2141
-
2142
- ERRPOS: Position of offending character is returned here.
2143
-
2144
- OVERRIDES: A ‘Tld_table’ array of additional domain restriction
2145
- structures that complement and supersede the built-in information.
2146
-
2147
- Test each of the characters in ‘in’ for whether or not they are
2148
- allowed by the information in ‘overrides’ or by the built-in TLD
2149
- restriction data. When data for the same TLD is available both
2150
- internally and in ‘overrides’ , the information in ‘overrides’
2151
- takes precedence. If several entries for a specific TLD are found,
2152
- the first one is used. If ‘overrides’ is ‘NULL’ , only the
2153
- built-in information is used. The position of the first offending
2154
- character is returned in ‘errpos’ . Note that the error position
2155
- refers to the decoded character offset rather than the byte
2156
- position in the string.
2157
-
2158
- Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all
2159
- characters are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a
2160
- character is not allowed, or additional error codes on general
2161
- failure conditions.
2162
-
2163
- 7.5 Error Handling
2164
- ==================
2165
-
2166
- tld_strerror
2167
- ------------
2168
-
2169
- -- Function: const char * tld_strerror (Tld_rc RC)
2170
- RC: tld return code
2171
-
2172
- Convert a return code integer to a text string. This string can be
2173
- used to output a diagnostic message to the user.
2174
-
2175
- *TLD_SUCCESS:* Successful operation. This value is guaranteed to
2176
- always be zero, the remaining ones are only guaranteed to hold
2177
- non-zero values, for logical comparison purposes.
2178
-
2179
- *TLD_INVALID:* Invalid character found.
2180
-
2181
- *TLD_NODATA:* No input data was provided.
2182
-
2183
- *TLD_MALLOC_ERROR:* Error during memory allocation.
2184
-
2185
- *TLD_ICONV_ERROR:* Error during iconv string conversion.
2186
-
2187
- *TLD_NO_TLD:* No top-level domain found in domain string.
2188
-
2189
- Return value: Returns a pointer to a statically allocated string
2190
- containing a description of the error with the return code ‘rc’ .
2191
-
2192
- 
2193
- File: libidn.info, Node: PR29 Functions, Next: Examples, Prev: TLD Functions, Up: Top
2194
-
2195
- 8 PR29 Functions
2196
- ****************
2197
-
2198
- A deficiency in the specification of Unicode Normalization Forms has
2199
- been found. The consequence is that some strings can be normalized into
2200
- different strings by different implementations. In other words, two
2201
- different implementations may return different output for the same input
2202
- (because the interpretation of the specification is ambiguous).
2203
- Further, an implementation invoked again on the one of the output
2204
- strings may return a different string (because one of the interpretation
2205
- of the ambiguous specification make normalization non-idempotent).
2206
- Fortunately, only a select few character sequence exhibit this problem,
2207
- and none of them are expected to occur in natural languages (due to
2208
- different linguistic uses of the involved characters).
2209
-
2210
- A full discussion of the problem may be found at:
2211
-
2212
- <http://www.unicode.org/review/pr-29.html>
2213
-
2214
- The PR29 functions below allow you to detect the problem sequence.
2215
- So when would you want to use these functions? For most applications,
2216
- such as those using Nameprep for IDN, this is likely only to be an
2217
- interoperability problem. Thus, you may not want to care about it, as
2218
- the character sequences will rarely occur naturally. However, if you
2219
- are using a profile, such as SASLPrep, to process authentication tokens;
2220
- authorization tokens; or passwords, there is a real danger that
2221
- attackers may try to use the peculiarities in these strings to attack
2222
- parts of your system. As only a small number of strings, and no
2223
- naturally occurring strings, exhibit this problem, the conservative
2224
- approach of rejecting the strings is recommended. If this approach is
2225
- not used, you should instead verify that all parts of your system, that
2226
- process the tokens and passwords, use a NFKC implementation that produce
2227
- the same output for the same input.
2228
-
2229
- Technically inclined readers may be interested in knowing more about
2230
- the implementation aspects of the PR29 flaw. *Note PR29 discussion::.
2231
-
2232
- 8.1 Header file ‘pr29.h’
2233
- ========================
2234
-
2235
- To use the functions explained in this chapter, you need to include the
2236
- file ‘pr29.h’ using:
2237
-
2238
- #include <pr29.h>
2239
-
2240
- 8.2 Core Functions
2241
- ==================
2242
-
2243
- pr29_4
2244
- ------
2245
-
2246
- -- Function: int pr29_4 (const uint32_t * IN, size_t LEN)
2247
- IN: input array with unicode code points.
2248
-
2249
- LEN: length of input array with unicode code points.
2250
-
2251
- Check the input to see if it may be normalized into different
2252
- strings by different NFKC implementations, due to an anomaly in the
2253
- NFKC specifications.
2254
-
2255
- Return value: Returns the ‘Pr29_rc’ value ‘PR29_SUCCESS’ on
2256
- success, and ‘PR29_PROBLEM’ if the input sequence is a "problem
2257
- sequence" (i.e., may be normalized into different strings by
2258
- different implementations).
2259
-
2260
- 8.3 Utility Functions
2261
- =====================
2262
-
2263
- pr29_4z
2264
- -------
2265
-
2266
- -- Function: int pr29_4z (const uint32_t * IN)
2267
- IN: zero terminated array of Unicode code points.
2268
-
2269
- Check the input to see if it may be normalized into different
2270
- strings by different NFKC implementations, due to an anomaly in the
2271
- NFKC specifications.
2272
-
2273
- Return value: Returns the ‘Pr29_rc’ value ‘PR29_SUCCESS’ on
2274
- success, and ‘PR29_PROBLEM’ if the input sequence is a "problem
2275
- sequence" (i.e., may be normalized into different strings by
2276
- different implementations).
2277
-
2278
- pr29_8z
2279
- -------
2280
-
2281
- -- Function: int pr29_8z (const char * IN)
2282
- IN: zero terminated input UTF-8 string.
2283
-
2284
- Check the input to see if it may be normalized into different
2285
- strings by different NFKC implementations, due to an anomaly in the
2286
- NFKC specifications.
2287
-
2288
- Return value: Returns the ‘Pr29_rc’ value ‘PR29_SUCCESS’ on
2289
- success, and ‘PR29_PROBLEM’ if the input sequence is a "problem
2290
- sequence" (i.e., may be normalized into different strings by
2291
- different implementations), or ‘PR29_STRINGPREP_ERROR’ if there was
2292
- a problem converting the string from UTF-8 to UCS-4.
2293
-
2294
- 8.4 Error Handling
2295
- ==================
2296
-
2297
- pr29_strerror
2298
- -------------
2299
-
2300
- -- Function: const char * pr29_strerror (Pr29_rc RC)
2301
- RC: an ‘Pr29_rc’ return code.
2302
-
2303
- Convert a return code integer to a text string. This string can be
2304
- used to output a diagnostic message to the user.
2305
-
2306
- *PR29_SUCCESS:* Successful operation. This value is guaranteed to
2307
- always be zero, the remaining ones are only guaranteed to hold
2308
- non-zero values, for logical comparison purposes.
2309
-
2310
- *PR29_PROBLEM:* A problem sequence was encountered.
2311
-
2312
- *PR29_STRINGPREP_ERROR:* The character set conversion failed (only
2313
- for ‘pr29_8z()’ ).
2314
-
2315
- Return value: Returns a pointer to a statically allocated string
2316
- containing a description of the error with the return code ‘rc’ .
2317
-
2318
- 
2319
- File: libidn.info, Node: Examples, Next: Invoking idn, Prev: PR29 Functions, Up: Top
2320
-
2321
- 9 Examples
2322
- **********
2323
-
2324
- This chapter contains example code which illustrate how ‘Libidn’ can be
2325
- used when writing your own application.
2326
-
2327
- * Menu:
2328
-
2329
- * Example 1:: Example using stringprep.
2330
- * Example 2:: Example using punycode.
2331
- * Example 3:: Example using IDNA ToASCII.
2332
- * Example 4:: Example using IDNA ToUnicode.
2333
- * Example 5:: Example using TLD checking.
2334
-
2335
- 
2336
- File: libidn.info, Node: Example 1, Next: Example 2, Up: Examples
2337
-
2338
- 9.1 Example 1
2339
- =============
2340
-
2341
- This example demonstrates how the stringprep functions are used.
2342
-
2343
- /* example.c --- Example code showing how to use stringprep().
2344
- * Copyright (C) 2002-2016 Simon Josefsson
2345
- *
2346
- * This file is part of GNU Libidn.
2347
- *
2348
- * This program is free software: you can redistribute it and/or modify
2349
- * it under the terms of the GNU General Public License as published by
2350
- * the Free Software Foundation, either version 3 of the License, or
2351
- * (at your option) any later version.
2352
- *
2353
- * This program is distributed in the hope that it will be useful,
2354
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2355
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2356
- * GNU General Public License for more details.
2357
- *
2358
- * You should have received a copy of the GNU General Public License
2359
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
2360
- *
2361
- */
2362
-
2363
- #include <stdio.h>
2364
- #include <stdlib.h>
2365
- #include <string.h>
2366
- #include <locale.h> /* setlocale() */
2367
- #include <stringprep.h>
2368
-
2369
- /*
2370
- * Compiling using libtool and pkg-config is recommended:
2371
- *
2372
- * $ libtool cc -o example example.c `pkg-config --cflags --libs libidn`
2373
- * $ ./example
2374
- * Input string encoded as `ISO-8859-1': ª
2375
- * Before locale2utf8 (length 2): aa 0a
2376
- * Before stringprep (length 3): c2 aa 0a
2377
- * After stringprep (length 2): 61 0a
2378
- * $
2379
- *
2380
- */
2381
-
2382
- int
2383
- main (void)
2384
- {
2385
- char buf[BUFSIZ];
2386
- char *p;
2387
- int rc;
2388
- size_t i;
2389
-
2390
- setlocale (LC_ALL, "");
2391
-
2392
- printf ("Input string encoded as `%s': ", stringprep_locale_charset ());
2393
- fflush (stdout);
2394
- if (!fgets (buf, BUFSIZ, stdin))
2395
- perror ("fgets");
2396
- buf[strlen (buf) - 1] = '\0';
2397
-
2398
- printf ("Before locale2utf8 (length %ld): ", (long int) strlen (buf));
2399
- for (i = 0; i < strlen (buf); i++)
2400
- printf ("%02x ", buf[i] & 0xFF);
2401
- printf ("\n");
2402
-
2403
- p = stringprep_locale_to_utf8 (buf);
2404
- if (p)
2405
- {
2406
- strcpy (buf, p);
2407
- free (p);
2408
- }
2409
- else
2410
- printf ("Could not convert string to UTF-8, continuing anyway...\n");
2411
-
2412
- printf ("Before stringprep (length %ld): ", (long int) strlen (buf));
2413
- for (i = 0; i < strlen (buf); i++)
2414
- printf ("%02x ", buf[i] & 0xFF);
2415
- printf ("\n");
2416
-
2417
- rc = stringprep (buf, BUFSIZ, 0, stringprep_nameprep);
2418
- if (rc != STRINGPREP_OK)
2419
- printf ("Stringprep failed (%d): %s\n", rc, stringprep_strerror (rc));
2420
- else
2421
- {
2422
- printf ("After stringprep (length %ld): ", (long int) strlen (buf));
2423
- for (i = 0; i < strlen (buf); i++)
2424
- printf ("%02x ", buf[i] & 0xFF);
2425
- printf ("\n");
2426
- }
2427
-
2428
- return 0;
2429
- }
2430
-
2431
- 
2432
- File: libidn.info, Node: Example 2, Next: Example 3, Prev: Example 1, Up: Examples
2433
-
2434
- 9.2 Example 2
2435
- =============
2436
-
2437
- This example demonstrates how the punycode functions are used.
2438
-
2439
- /* example2.c --- Example code showing how to use punycode.
2440
- * Copyright (C) 2002-2016 Simon Josefsson
2441
- * Copyright (C) 2002 Adam M. Costello
2442
- *
2443
- * This file is part of GNU Libidn.
2444
- *
2445
- * This program is free software: you can redistribute it and/or modify
2446
- * it under the terms of the GNU General Public License as published by
2447
- * the Free Software Foundation, either version 3 of the License, or
2448
- * (at your option) any later version.
2449
- *
2450
- * This program is distributed in the hope that it will be useful,
2451
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2452
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2453
- * GNU General Public License for more details.
2454
- *
2455
- * You should have received a copy of the GNU General Public License
2456
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
2457
- *
2458
- */
2459
-
2460
- #include <locale.h> /* setlocale() */
2461
-
2462
- /*
2463
- * This file is derived from RFC 3492 written by Adam M. Costello.
2464
- *
2465
- * Disclaimer and license: Regarding this entire document or any
2466
- * portion of it (including the pseudocode and C code), the author
2467
- * makes no guarantees and is not responsible for any damage resulting
2468
- * from its use. The author grants irrevocable permission to anyone
2469
- * to use, modify, and distribute it in any way that does not diminish
2470
- * the rights of anyone else to use, modify, and distribute it,
2471
- * provided that redistributed derivative works do not contain
2472
- * misleading author or version information. Derivative works need
2473
- * not be licensed under similar terms.
2474
- *
2475
- */
2476
-
2477
- #include <assert.h>
2478
- #include <stdio.h>
2479
- #include <stdlib.h>
2480
- #include <string.h>
2481
-
2482
- #include <punycode.h>
2483
-
2484
- /* For testing, we'll just set some compile-time limits rather than */
2485
- /* use malloc(), and set a compile-time option rather than using a */
2486
- /* command-line option. */
2487
-
2488
- enum
2489
- {
2490
- unicode_max_length = 256,
2491
- ace_max_length = 256
2492
- };
2493
-
2494
- static void
2495
- usage (char **argv)
2496
- {
2497
- fprintf (stderr,
2498
- "\n"
2499
- "%s -e reads code points and writes a Punycode string.\n"
2500
- "%s -d reads a Punycode string and writes code points.\n"
2501
- "\n"
2502
- "Input and output are plain text in the native character set.\n"
2503
- "Code points are in the form u+hex separated by whitespace.\n"
2504
- "Although the specification allows Punycode strings to contain\n"
2505
- "any characters from the ASCII repertoire, this test code\n"
2506
- "supports only the printable characters, and needs the Punycode\n"
2507
- "string to be followed by a newline.\n"
2508
- "The case of the u in u+hex is the force-to-uppercase flag.\n",
2509
- argv[0], argv[0]);
2510
- exit (EXIT_FAILURE);
2511
- }
2512
-
2513
- static void
2514
- fail (const char *msg)
2515
- {
2516
- fputs (msg, stderr);
2517
- exit (EXIT_FAILURE);
2518
- }
2519
-
2520
- static const char too_big[] =
2521
- "input or output is too large, recompile with larger limits\n";
2522
- static const char invalid_input[] = "invalid input\n";
2523
- static const char overflow[] = "arithmetic overflow\n";
2524
- static const char io_error[] = "I/O error\n";
2525
-
2526
- /* The following string is used to convert printable */
2527
- /* characters between ASCII and the native charset: */
2528
-
2529
- static const char print_ascii[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" " !\"#$%&'()*+,-./" "0123456789:;<=>?" "\0x40" /* at sign */
2530
- "ABCDEFGHIJKLMNO"
2531
- "PQRSTUVWXYZ[\\]^_" "`abcdefghijklmno" "pqrstuvwxyz{|}~\n";
2532
-
2533
- int
2534
- main (int argc, char **argv)
2535
- {
2536
- enum punycode_status status;
2537
- int r;
2538
- size_t input_length, output_length, j;
2539
- unsigned char case_flags[unicode_max_length];
2540
-
2541
- setlocale (LC_ALL, "");
2542
-
2543
- if (argc != 2)
2544
- usage (argv);
2545
- if (argv[1][0] != '-')
2546
- usage (argv);
2547
- if (argv[1][2] != 0)
2548
- usage (argv);
2549
-
2550
- if (argv[1][1] == 'e')
2551
- {
2552
- uint32_t input[unicode_max_length];
2553
- unsigned long codept;
2554
- char output[ace_max_length + 1], uplus[3];
2555
- int c;
2556
-
2557
- /* Read the input code points: */
2558
-
2559
- input_length = 0;
2560
-
2561
- for (;;)
2562
- {
2563
- r = scanf ("%2s%lx", uplus, &codept);
2564
- if (ferror (stdin))
2565
- fail (io_error);
2566
- if (r == EOF || r == 0)
2567
- break;
2568
-
2569
- if (r != 2 || uplus[1] != '+' || codept > (uint32_t) - 1)
2570
- {
2571
- fail (invalid_input);
2572
- }
2573
-
2574
- if (input_length == unicode_max_length)
2575
- fail (too_big);
2576
-
2577
- if (uplus[0] == 'u')
2578
- case_flags[input_length] = 0;
2579
- else if (uplus[0] == 'U')
2580
- case_flags[input_length] = 1;
2581
- else
2582
- fail (invalid_input);
2583
-
2584
- input[input_length++] = codept;
2585
- }
2586
-
2587
- /* Encode: */
2588
-
2589
- output_length = ace_max_length;
2590
- status = punycode_encode (input_length, input, case_flags,
2591
- &output_length, output);
2592
- if (status == punycode_bad_input)
2593
- fail (invalid_input);
2594
- if (status == punycode_big_output)
2595
- fail (too_big);
2596
- if (status == punycode_overflow)
2597
- fail (overflow);
2598
- assert (status == punycode_success);
2599
-
2600
- /* Convert to native charset and output: */
2601
-
2602
- for (j = 0; j < output_length; ++j)
2603
- {
2604
- c = output[j];
2605
- assert (c >= 0 && c <= 127);
2606
- if (print_ascii[c] == 0)
2607
- fail (invalid_input);
2608
- output[j] = print_ascii[c];
2609
- }
2610
-
2611
- output[j] = 0;
2612
- r = puts (output);
2613
- if (r == EOF)
2614
- fail (io_error);
2615
- return EXIT_SUCCESS;
2616
- }
2617
-
2618
- if (argv[1][1] == 'd')
2619
- {
2620
- char input[ace_max_length + 2], *p, *pp;
2621
- uint32_t output[unicode_max_length];
2622
-
2623
- /* Read the Punycode input string and convert to ASCII: */
2624
-
2625
- if (!fgets (input, ace_max_length + 2, stdin))
2626
- fail (io_error);
2627
- if (ferror (stdin))
2628
- fail (io_error);
2629
- if (feof (stdin))
2630
- fail (invalid_input);
2631
- input_length = strlen (input) - 1;
2632
- if (input[input_length] != '\n')
2633
- fail (too_big);
2634
- input[input_length] = 0;
2635
-
2636
- for (p = input; *p != 0; ++p)
2637
- {
2638
- pp = strchr (print_ascii, *p);
2639
- if (pp == 0)
2640
- fail (invalid_input);
2641
- *p = pp - print_ascii;
2642
- }
2643
-
2644
- /* Decode: */
2645
-
2646
- output_length = unicode_max_length;
2647
- status = punycode_decode (input_length, input, &output_length,
2648
- output, case_flags);
2649
- if (status == punycode_bad_input)
2650
- fail (invalid_input);
2651
- if (status == punycode_big_output)
2652
- fail (too_big);
2653
- if (status == punycode_overflow)
2654
- fail (overflow);
2655
- assert (status == punycode_success);
2656
-
2657
- /* Output the result: */
2658
-
2659
- for (j = 0; j < output_length; ++j)
2660
- {
2661
- r = printf ("%s+%04lX\n",
2662
- case_flags[j] ? "U" : "u", (unsigned long) output[j]);
2663
- if (r < 0)
2664
- fail (io_error);
2665
- }
2666
-
2667
- return EXIT_SUCCESS;
2668
- }
2669
-
2670
- usage (argv);
2671
- return EXIT_SUCCESS; /* not reached, but quiets compiler warning */
2672
- }
2673
-
2674
- 
2675
- File: libidn.info, Node: Example 3, Next: Example 4, Prev: Example 2, Up: Examples
2676
-
2677
- 9.3 Example 3
2678
- =============
2679
-
2680
- This example demonstrates how the library is used to convert
2681
- internationalized domain names into ASCII compatible names.
2682
-
2683
- /* example3.c --- Example ToASCII() code showing how to use Libidn.
2684
- * Copyright (C) 2002-2016 Simon Josefsson
2685
- *
2686
- * This file is part of GNU Libidn.
2687
- *
2688
- * This program is free software: you can redistribute it and/or modify
2689
- * it under the terms of the GNU General Public License as published by
2690
- * the Free Software Foundation, either version 3 of the License, or
2691
- * (at your option) any later version.
2692
- *
2693
- * This program is distributed in the hope that it will be useful,
2694
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2695
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2696
- * GNU General Public License for more details.
2697
- *
2698
- * You should have received a copy of the GNU General Public License
2699
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
2700
- *
2701
- */
2702
-
2703
- #include <stdio.h>
2704
- #include <stdlib.h>
2705
- #include <string.h>
2706
- #include <locale.h> /* setlocale() */
2707
- #include <stringprep.h> /* stringprep_locale_charset() */
2708
- #include <idna.h> /* idna_to_ascii_lz() */
2709
-
2710
- /*
2711
- * Compiling using libtool and pkg-config is recommended:
2712
- *
2713
- * $ libtool cc -o example3 example3.c `pkg-config --cflags --libs libidn`
2714
- * $ ./example3
2715
- * Input domain encoded as `ISO-8859-1': www.räksmörgåsª.example
2716
- * Read string (length 23): 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 aa 2e 65 78 61 6d 70 6c 65
2717
- * ACE label (length 33): 'www.xn--rksmrgsa-0zap8p.example'
2718
- * 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65
2719
- * $
2720
- *
2721
- */
2722
-
2723
- int
2724
- main (void)
2725
- {
2726
- char buf[BUFSIZ];
2727
- char *p;
2728
- int rc;
2729
- size_t i;
2730
-
2731
- setlocale (LC_ALL, "");
2732
-
2733
- printf ("Input domain encoded as `%s': ", stringprep_locale_charset ());
2734
- fflush (stdout);
2735
- if (!fgets (buf, BUFSIZ, stdin))
2736
- perror ("fgets");
2737
- buf[strlen (buf) - 1] = '\0';
2738
-
2739
- printf ("Read string (length %ld): ", (long int) strlen (buf));
2740
- for (i = 0; i < strlen (buf); i++)
2741
- printf ("%02x ", buf[i] & 0xFF);
2742
- printf ("\n");
2743
-
2744
- rc = idna_to_ascii_lz (buf, &p, 0);
2745
- if (rc != IDNA_SUCCESS)
2746
- {
2747
- printf ("ToASCII() failed (%d): %s\n", rc, idna_strerror (rc));
2748
- return EXIT_FAILURE;
2749
- }
2750
-
2751
- printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p);
2752
- for (i = 0; i < strlen (p); i++)
2753
- printf ("%02x ", p[i] & 0xFF);
2754
- printf ("\n");
2755
-
2756
- free (p);
2757
-
2758
- return 0;
2759
- }
2760
-
2761
- 
2762
- File: libidn.info, Node: Example 4, Next: Example 5, Prev: Example 3, Up: Examples
2763
-
2764
- 9.4 Example 4
2765
- =============
2766
-
2767
- This example demonstrates how the library is used to convert ASCII
2768
- compatible names to internationalized domain names.
2769
-
2770
- /* example4.c --- Example ToUnicode() code showing how to use Libidn.
2771
- * Copyright (C) 2002-2016 Simon Josefsson
2772
- *
2773
- * This file is part of GNU Libidn.
2774
- *
2775
- * This program is free software: you can redistribute it and/or modify
2776
- * it under the terms of the GNU General Public License as published by
2777
- * the Free Software Foundation, either version 3 of the License, or
2778
- * (at your option) any later version.
2779
- *
2780
- * This program is distributed in the hope that it will be useful,
2781
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2782
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2783
- * GNU General Public License for more details.
2784
- *
2785
- * You should have received a copy of the GNU General Public License
2786
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
2787
- *
2788
- */
2789
-
2790
- #include <stdio.h>
2791
- #include <stdlib.h>
2792
- #include <string.h>
2793
- #include <locale.h> /* setlocale() */
2794
- #include <stringprep.h> /* stringprep_locale_charset() */
2795
- #include <idna.h> /* idna_to_unicode_lzlz() */
2796
-
2797
- /*
2798
- * Compiling using libtool and pkg-config is recommended:
2799
- *
2800
- * $ libtool cc -o example4 example4.c `pkg-config --cflags --libs libidn`
2801
- * $ ./example4
2802
- * Input domain encoded as `ISO-8859-1': www.xn--rksmrgsa-0zap8p.example
2803
- * Read string (length 33): 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65
2804
- * ACE label (length 23): 'www.räksmörgåsa.example'
2805
- * 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 61 2e 65 78 61 6d 70 6c 65
2806
- * $
2807
- *
2808
- */
2809
-
2810
- int
2811
- main (void)
2812
- {
2813
- char buf[BUFSIZ];
2814
- char *p;
2815
- int rc;
2816
- size_t i;
2817
-
2818
- setlocale (LC_ALL, "");
2819
-
2820
- printf ("Input domain encoded as `%s': ", stringprep_locale_charset ());
2821
- fflush (stdout);
2822
- if (!fgets (buf, BUFSIZ, stdin))
2823
- perror ("fgets");
2824
- buf[strlen (buf) - 1] = '\0';
2825
-
2826
- printf ("Read string (length %ld): ", (long int) strlen (buf));
2827
- for (i = 0; i < strlen (buf); i++)
2828
- printf ("%02x ", buf[i] & 0xFF);
2829
- printf ("\n");
2830
-
2831
- rc = idna_to_unicode_lzlz (buf, &p, 0);
2832
- if (rc != IDNA_SUCCESS)
2833
- {
2834
- printf ("ToUnicode() failed (%d): %s\n", rc, idna_strerror (rc));
2835
- return EXIT_FAILURE;
2836
- }
2837
-
2838
- printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p);
2839
- for (i = 0; i < strlen (p); i++)
2840
- printf ("%02x ", p[i] & 0xFF);
2841
- printf ("\n");
2842
-
2843
- free (p);
2844
-
2845
- return 0;
2846
- }
2847
-
2848
- 
2849
- File: libidn.info, Node: Example 5, Prev: Example 4, Up: Examples
2850
-
2851
- 9.5 Example 5
2852
- =============
2853
-
2854
- This example demonstrates how the library is used to check a string for
2855
- invalid characters within a specific TLD.
2856
-
2857
- /* example5.c --- Example TLD checking.
2858
- * Copyright (C) 2004-2016 Simon Josefsson
2859
- *
2860
- * This file is part of GNU Libidn.
2861
- *
2862
- * This program is free software: you can redistribute it and/or modify
2863
- * it under the terms of the GNU General Public License as published by
2864
- * the Free Software Foundation, either version 3 of the License, or
2865
- * (at your option) any later version.
2866
- *
2867
- * This program is distributed in the hope that it will be useful,
2868
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2869
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2870
- * GNU General Public License for more details.
2871
- *
2872
- * You should have received a copy of the GNU General Public License
2873
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
2874
- *
2875
- */
2876
-
2877
- #include <stdio.h>
2878
- #include <stdlib.h>
2879
- #include <string.h>
2880
-
2881
- /* Get stringprep_locale_charset, etc. */
2882
- #include <stringprep.h>
2883
-
2884
- /* Get idna_to_ascii_8z, etc. */
2885
- #include <idna.h>
2886
-
2887
- /* Get tld_check_4z. */
2888
- #include <tld.h>
2889
-
2890
- /*
2891
- * Compiling using libtool and pkg-config is recommended:
2892
- *
2893
- * $ libtool cc -o example5 example5.c `pkg-config --cflags --libs libidn`
2894
- * $ ./example5
2895
- * Input domain encoded as `UTF-8': fooß.no
2896
- * Read string (length 8): 66 6f 6f c3 9f 2e 6e 6f
2897
- * ToASCII string (length 8): fooss.no
2898
- * ToUnicode string: U+0066 U+006f U+006f U+0073 U+0073 U+002e U+006e U+006f
2899
- * Domain accepted by TLD check
2900
- *
2901
- * $ ./example5
2902
- * Input domain encoded as `UTF-8': gr€€n.no
2903
- * Read string (length 12): 67 72 e2 82 ac e2 82 ac 6e 2e 6e 6f
2904
- * ToASCII string (length 16): xn--grn-l50aa.no
2905
- * ToUnicode string: U+0067 U+0072 U+20ac U+20ac U+006e U+002e U+006e U+006f
2906
- * Domain rejected by TLD check, Unicode position 2
2907
- *
2908
- */
2909
-
2910
- int
2911
- main (void)
2912
- {
2913
- char buf[BUFSIZ];
2914
- char *p;
2915
- uint32_t *r;
2916
- int rc;
2917
- size_t errpos, i;
2918
-
2919
- printf ("Input domain encoded as `%s': ", stringprep_locale_charset ());
2920
- fflush (stdout);
2921
- if (!fgets (buf, BUFSIZ, stdin))
2922
- perror ("fgets");
2923
- buf[strlen (buf) - 1] = '\0';
2924
-
2925
- printf ("Read string (length %ld): ", (long int) strlen (buf));
2926
- for (i = 0; i < strlen (buf); i++)
2927
- printf ("%02x ", buf[i] & 0xFF);
2928
- printf ("\n");
2929
-
2930
- p = stringprep_locale_to_utf8 (buf);
2931
- if (p)
2932
- {
2933
- strcpy (buf, p);
2934
- free (p);
2935
- }
2936
- else
2937
- printf ("Could not convert string to UTF-8, continuing anyway...\n");
2938
-
2939
- rc = idna_to_ascii_8z (buf, &p, 0);
2940
- if (rc != IDNA_SUCCESS)
2941
- {
2942
- printf ("idna_to_ascii_8z failed (%d): %s\n", rc, idna_strerror (rc));
2943
- return 2;
2944
- }
2945
-
2946
- printf ("ToASCII string (length %ld): %s\n", (long int) strlen (p), p);
2947
-
2948
- rc = idna_to_unicode_8z4z (p, &r, 0);
2949
- free (p);
2950
- if (rc != IDNA_SUCCESS)
2951
- {
2952
- printf ("idna_to_unicode_8z4z failed (%d): %s\n",
2953
- rc, idna_strerror (rc));
2954
- return 2;
2955
- }
2956
-
2957
- printf ("ToUnicode string: ");
2958
- for (i = 0; r[i]; i++)
2959
- printf ("U+%04x ", r[i]);
2960
- printf ("\n");
2961
-
2962
- rc = tld_check_4z (r, &errpos, NULL);
2963
- free (r);
2964
- if (rc == TLD_INVALID)
2965
- {
2966
- printf ("Domain rejected by TLD check, Unicode position %ld\n", (long int) errpos);
2967
- return 1;
2968
- }
2969
- else if (rc != TLD_SUCCESS)
2970
- {
2971
- printf ("tld_check_4z() failed (%d): %s\n", rc, tld_strerror (rc));
2972
- return 2;
2973
- }
2974
-
2975
- printf ("Domain accepted by TLD check\n");
2976
-
2977
- return 0;
2978
- }
2979
-
2980
- 
2981
- File: libidn.info, Node: Invoking idn, Next: Emacs API, Prev: Examples, Up: Top
2982
-
2983
- 10 Invoking idn
2984
- ***************
2985
-
2986
- 10.1 Name
2987
- =========
2988
-
2989
- GNU Libidn (idn) – Internationalized Domain Names command line tool
2990
-
2991
- 10.2 Description
2992
- ================
2993
-
2994
- ‘idn’ allows internationalized string preparation (‘stringprep’),
2995
- encoding and decoding of punycode data, and IDNA ToASCII/ToUnicode
2996
- operations to be performed on the command line.
2997
-
2998
- If strings are specified on the command line, they are used as input
2999
- and the computed output is printed to standard output ‘stdout’. If no
3000
- strings are specified on the command line, the program read data, line
3001
- by line, from the standard input ‘stdin’, and print the computed output
3002
- to standard output. What processing is performed (e.g., ToASCII, or
3003
- Punycode encode) is indicated by options. If any errors are
3004
- encountered, the execution of the applications is aborted.
3005
-
3006
- All strings are expected to be encoded in the preferred charset used
3007
- by your locale. Use ‘--debug’ to find out what this charset is. You
3008
- can override the charset used by setting environment variable ‘CHARSET’.
3009
-
3010
- To process a string that starts with ‘-’, for example ‘-foo’, use
3011
- ‘--’ to signal the end of parameters, as in ‘idn --quiet -a -- -foo’.
3012
-
3013
- 10.3 Options
3014
- ============
3015
-
3016
- ‘idn’ recognizes these commands:
3017
-
3018
- -h, --help Print help and exit
3019
-
3020
- -V, --version Print version and exit
3021
-
3022
- -s, --stringprep Prepare string according to nameprep profile
3023
-
3024
- -d, --punycode-decode Decode Punycode
3025
-
3026
- -e, --punycode-encode Encode Punycode
3027
-
3028
- -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)
3029
-
3030
- -u, --idna-to-unicode Convert from ACE according to IDNA
3031
-
3032
- --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)
3033
-
3034
- --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)
3035
-
3036
- --no-tld Don't check string for TLD specific rules
3037
- Only for --idna-to-ascii and --idna-to-unicode
3038
-
3039
- -n, --nfkc Normalize string according to Unicode v3.2 NFKC
3040
-
3041
- -p, --profile=STRING Use specified stringprep profile instead
3042
- Valid stringprep profiles: `Nameprep',
3043
- `iSCSI', `Nodeprep', `Resourceprep',
3044
- `trace', `SASLprep'
3045
-
3046
- --debug Print debugging information
3047
-
3048
- --quiet Silent operation
3049
-
3050
- 10.4 Environment Variables
3051
- ==========================
3052
-
3053
- The CHARSET environment variable can be used to override what character
3054
- set to be used for decoding incoming data (i.e., on the command line or
3055
- on the standard input stream), and to encode data to the standard
3056
- output. If your system is set up correctly, however, the application
3057
- will guess which character set is used automatically. Example usage:
3058
-
3059
- $ CHARSET=ISO-8859-1 idn --punycode-encode
3060
- ...
3061
-
3062
- 10.5 Examples
3063
- =============
3064
-
3065
- Standard usage, reading input from standard input:
3066
-
3067
- jas@latte:~$ idn
3068
- libidn 0.3.5
3069
- Copyright 2002, 2003 Simon Josefsson.
3070
- GNU Libidn comes with NO WARRANTY, to the extent permitted by law.
3071
- You may redistribute copies of GNU Libidn under the terms of
3072
- the GNU Lesser General Public License. For more information
3073
- about these matters, see the file named COPYING.LIB.
3074
- Type each input string on a line by itself, terminated by a newline character.
3075
- räksmörgås.se
3076
- xn--rksmrgs-5wao1o.se
3077
- jas@latte:~$
3078
-
3079
- Reading input from command line, and disable printing copyright and
3080
- license information:
3081
-
3082
- jas@latte:~$ idn --quiet räksmörgås.se blåbærgrød.no
3083
- xn--rksmrgs-5wao1o.se
3084
- xn--blbrgrd-fxak7p.no
3085
- jas@latte:~$
3086
-
3087
- Accessing a specific StringPrep profile directly:
3088
-
3089
- jas@latte:~$ idn --quiet --profile=SASLprep --stringprep teßtª
3090
- teßta
3091
- jas@latte:~$
3092
-
3093
- 10.6 Troubleshooting
3094
- ====================
3095
-
3096
- Getting character data encoded right, and making sure Libidn use the
3097
- same encoding, can be difficult. The reason for this is that most
3098
- systems encode character data in more than one character encoding, i.e.,
3099
- using ‘UTF-8’ together with ‘ISO-8859-1’ or ‘ISO-2022-JP’. This problem
3100
- is likely to continue to exist until only one character encoding come
3101
- out as the evolutionary winner, or (more likely, at least to some
3102
- extents) forever.
3103
-
3104
- The first step to troubleshooting character encoding problems with
3105
- Libidn is to use the ‘--debug’ parameter to find out which character set
3106
- encoding ‘idn’ believe your locale uses.
3107
-
3108
- jas@latte:~$ idn --debug --quiet ""
3109
- system locale uses charset `UTF-8'.
3110
-
3111
- jas@latte:~$
3112
-
3113
- If it prints ‘ANSI_X3.4-1968’ (i.e., ‘US-ASCII’), this indicate you
3114
- have not configured your locale properly. To configure the locale, you
3115
- can, for example, use ‘LANG=sv_SE.UTF-8; export LANG’ at a ‘/bin/sh’
3116
- prompt, to set up your locale for a Swedish environment using ‘UTF-8’ as
3117
- the encoding.
3118
-
3119
- Sometimes ‘idn’ appear to be unable to translate from your system
3120
- locale into ‘UTF-8’ (which is used internally), and you get an error
3121
- like the following:
3122
-
3123
- jas@latte:~$ idn --quiet foo
3124
- idn: could not convert from ISO-8859-1 to UTF-8.
3125
- jas@latte:~$
3126
-
3127
- The simplest explanation is that you haven’t installed the ‘iconv’
3128
- conversion tools. You can find it as a standalone library in GNU
3129
- Libiconv (<http://www.gnu.org/software/libiconv/>). On many GNU/Linux
3130
- systems, this library is part of the system, but you may have to install
3131
- additional packages (e.g., ‘glibc-locale’ for Debian) to be able to use
3132
- it.
3133
-
3134
- Another explanation is that the error is correct and you are feeding
3135
- ‘idn’ invalid data. This can happen inadvertently if you are not
3136
- careful with the character set encoding you use. For example, if your
3137
- shell run in a ‘ISO-8859-1’ environment, and you invoke ‘idn’ with the
3138
- ‘CHARSET’ environment variable as follows, you will feed it ‘ISO-8859-1’
3139
- characters but force it to believe they are ‘UTF-8’. Naturally this
3140
- will lead to an error, unless the byte sequences happen to be valid
3141
- ‘UTF-8’. Note that even if you don’t get an error, the output may be
3142
- incorrect in this situation, because ‘ISO-8859-1’ and ‘UTF-8’ does not
3143
- in general encode the same characters as the same byte sequences.
3144
-
3145
- jas@latte:~$ idn --quiet --debug ""
3146
- system locale uses charset `ISO-8859-1'.
3147
-
3148
- jas@latte:~$ CHARSET=UTF-8 idn --quiet --debug räksmörgås
3149
- system locale uses charset `UTF-8'.
3150
- input[0] = U+0072
3151
- input[1] = U+4af3
3152
- input[2] = U+006d
3153
- input[3] = U+1b29e5
3154
- input[4] = U+0073
3155
- output[0] = U+0078
3156
- output[1] = U+006e
3157
- output[2] = U+002d
3158
- output[3] = U+002d
3159
- output[4] = U+0072
3160
- output[5] = U+006d
3161
- output[6] = U+0073
3162
- output[7] = U+002d
3163
- output[8] = U+0068
3164
- output[9] = U+0069
3165
- output[10] = U+0036
3166
- output[11] = U+0064
3167
- output[12] = U+0035
3168
- output[13] = U+0039
3169
- output[14] = U+0037
3170
- output[15] = U+0035
3171
- output[16] = U+0035
3172
- output[17] = U+0032
3173
- output[18] = U+0061
3174
- xn--rms-hi6d597552a
3175
- jas@latte:~$
3176
-
3177
- The sense moral here is to forget about ‘CHARSET’ (configure your
3178
- locales properly instead) unless you know what you are doing, and if you
3179
- want to use it, do it carefully, after verifying with ‘--debug’ that you
3180
- get the desired results.
3181
-
3182
- 
3183
- File: libidn.info, Node: Emacs API, Next: Java API, Prev: Invoking idn, Up: Top
3184
-
3185
- 11 Emacs API
3186
- ************
3187
-
3188
- Included in Libidn are ‘punycode.el’ and ‘idna.el’ that provides an
3189
- Emacs Lisp API to (a limited set of) the Libidn API. This section
3190
- describes the API. Currently the IDNA API always set the
3191
- ‘UseSTD3ASCIIRules’ flag and clear the ‘AllowUnassigned’ flag, in the
3192
- future there may be functionality to specify these flags via the API.
3193
-
3194
- 11.1 Punycode Emacs API
3195
- =======================
3196
-
3197
- -- Variable: punycode-program
3198
- Name of the GNU Libidn ‘idn’ application. The default is ‘idn’.
3199
- This variable can be customized.
3200
-
3201
- -- Variable: punycode-environment
3202
- List of environment variable definitions prepended to
3203
- ‘process-environment’. The default is ‘("CHARSET=UTF-8")’. This
3204
- variable can be customized.
3205
-
3206
- -- Variable: punycode-encode-parameters
3207
- List of parameters passed to PUNYCODE-PROGRAM to invoke punycode
3208
- encoding mode. The default is ‘("--quiet" "--punycode-encode")’.
3209
- This variable can be customized.
3210
-
3211
- -- Variable: punycode-decode-parameters
3212
- Parameters passed to PUNYCODE-PROGRAM to invoke punycode decoding
3213
- mode. The default is ‘("--quiet" "--punycode-decode")’. This
3214
- variable can be customized.
3215
-
3216
- -- Function: punycode-encode string
3217
- Returns a Punycode encoding of the STRING, after converting the
3218
- input into UTF-8.
3219
-
3220
- -- Function: punycode-decode string
3221
- Returns a possibly multibyte string which is the decoding of the
3222
- STRING which is a punycode encoded string.
3223
-
3224
- 11.2 IDNA Emacs API
3225
- ===================
3226
-
3227
- -- Variable: idna-program
3228
- Name of the GNU Libidn ‘idn’ application. The default is ‘idn’.
3229
- This variable can be customized.
3230
-
3231
- -- Variable: idna-environment
3232
- List of environment variable definitions prepended to
3233
- ‘process-environment’. The default is ‘("CHARSET=UTF-8")’. This
3234
- variable can be customized.
3235
-
3236
- -- Variable: idna-to-ascii-parameters
3237
- List of parameters passed to IDNA-PROGRAM to invoke IDNA ToASCII
3238
- mode. The default is ‘("--quiet" "--idna-to-ascii"
3239
- "--usestd3asciirules")’. This variable can be customized.
3240
-
3241
- -- Variable: idna-to-unicode-parameters
3242
- Parameters passed IDNA-PROGRAM to invoke IDNA ToUnicode mode. The
3243
- default is ‘("--quiet" "--idna-to-unicode" "--usestd3asciirules")’.
3244
- This variable can be customized.
3245
-
3246
- -- Function: idna-to-ascii string
3247
- Returns an ASCII Compatible Encoding (ACE) of the string computed
3248
- by the IDNA ToASCII operation on the input STRING, after converting
3249
- the input to UTF-8.
3250
-
3251
- -- Function: idna-to-unicode string
3252
- Returns a possibly multibyte string which is the output of the IDNA
3253
- ToUnicode operation computed on the input STRING.
3254
-
3255
- 
3256
- File: libidn.info, Node: Java API, Next: C# API, Prev: Emacs API, Up: Top
3257
-
3258
- 12 Java API
3259
- ***********
3260
-
3261
- Libidn has been ported to the Java programming language, and as a
3262
- consequence most of the API is available to native Java applications.
3263
- This section contain notes on this support, complete documentation is
3264
- pending.
3265
-
3266
- The Java library, if Libidn has been built with Java support (*note
3267
- Downloading and Installing::), will be placed in ‘java/libidn-1.33.jar’.
3268
- The source code is below ‘java/’ in Maven directory layout, and there is
3269
- a Maven ‘pom.xml’ build script as well. Source code files are in
3270
- ‘java/src/main/java/gnu/inet/encoding/’.
3271
-
3272
- 12.1 Overview
3273
- =============
3274
-
3275
- This package provides a Java implementation of the Internationalized
3276
- Domain Names in Applications (IDNA) standard. It is written entirely in
3277
- Java and does not require any additional libraries to be set up.
3278
-
3279
- The gnu.inet.encoding.IDNA class offers two public functions, toASCII
3280
- and toUnicode which can be used as follows:
3281
-
3282
- gnu.inet.encoding.IDNA.toASCII("blöds.züg");
3283
- gnu.inet.encoding.IDNA.toUnicode("xn--blds-6qa.xn--zg-xka");
3284
-
3285
- 12.2 Miscellaneous Programs
3286
- ===========================
3287
-
3288
- The ‘java/src/util/java/’ directory contains several programs that are
3289
- related to the Java part of GNU Libidn, but that don’t need to be
3290
- included in the main source tree or the JAR file.
3291
-
3292
- 12.2.1 GenerateRFC3454
3293
- ----------------------
3294
-
3295
- This program parses RFC3454 and creates the RFC3454.java program that is
3296
- required during the StringPrep phase.
3297
-
3298
- The RFC can be found at various locations, for example at
3299
- <http://www.ietf.org/rfc/rfc3454.txt>.
3300
-
3301
- Invoke the program as follows:
3302
-
3303
- $ java GenerateRFC3454
3304
- Creating RFC3454.java... Ok.
3305
-
3306
- 12.2.2 GenerateNFKC
3307
- -------------------
3308
-
3309
- The GenerateNFKC program parses the Unicode character database file and
3310
- generates all the tables required for NFKC. This program requires the
3311
- two files UnicodeData.txt and CompositionExclusions.txt of version 3.2
3312
- of the Unicode files. Note that RFC3454 (Stringprep) defines that
3313
- Unicode version 3.2 is to be used, not the latest version.
3314
-
3315
- The Unicode data files can be found at
3316
- <http://www.unicode.org/Public/>.
3317
-
3318
- Invoke the program as follows:
3319
-
3320
- $ java GenerateNFKC
3321
- Creating CombiningClass.java... Ok.
3322
- Creating DecompositionKeys.java... Ok.
3323
- Creating DecompositionMappings.java... Ok.
3324
- Creating Composition.java... Ok.
3325
-
3326
- 12.2.3 TestIDNA
3327
- ---------------
3328
-
3329
- The TestIDNA program allows to test the IDNA implementation manually or
3330
- against Simon Josefsson’s test vectors.
3331
-
3332
- The test vectors can be found at the Libidn homepage,
3333
- <http://www.gnu.org/software/libidn/>.
3334
-
3335
- To test the transformation manually, use:
3336
-
3337
- $ java -cp .:/usr/share/java/libidn.jar TestIDNA -a <string to test>
3338
- Input: <string to test>
3339
- Output: <toASCII(string to test)>
3340
- $ java -cp .:/usr/share/java/libidn.jar TestIDNA -u <string to test>
3341
- Input: <string to test>
3342
- Output: <toUnicode(string to test)>
3343
-
3344
- To test against draft-josefsson-idn-test-vectors.html, use:
3345
-
3346
- $ java -cp .:/usr/share/java/libidn/libidn.jar TestIDNA -t
3347
- No errors detected!
3348
-
3349
- 12.2.4 TestNFKC
3350
- ---------------
3351
-
3352
- The TestNFKC program allows to test the NFKC implementation manually or
3353
- against the NormalizationTest.txt file from the Unicode data files.
3354
-
3355
- To test the normalization manually, use:
3356
-
3357
- $ java -cp .:/usr/share/java/libidn.jar TestNFKC <string to test>
3358
- Input: <string to test>
3359
- Output: <nfkc version of the string to test>
3360
-
3361
- To test against NormalizationTest.txt:
3362
-
3363
- $ java -cp .:/usr/share/java/libidn.jar TestNFKC
3364
- No errors detected!
3365
-
3366
- 12.3 Possible Problems
3367
- ======================
3368
-
3369
- Beware of Bugs: This Java API needs a lot more testing, especially with
3370
- "exotic" character sets. While it works for me, it may not work for
3371
- you.
3372
-
3373
- Encoding of your Java sources: If you are using non-ASCII characters
3374
- in your Java source code, make sure javac compiles your programs with
3375
- the correct encoding. If necessary specify the encoding using the
3376
- -encoding parameter.
3377
-
3378
- Java Unicode handling: Java 1.4 only handles 16-bit Unicode code
3379
- points (i.e. characters in the Basic Multilingual Plane), this
3380
- implementation therefore ignores all references to so-called
3381
- Supplementary Characters (U+10000 to U+10FFFF). Starting from Java 1.5,
3382
- these characters will also be supported by Java, but this will require
3383
- changes to this library. See also the next section.
3384
-
3385
- 12.4 A Note on Java and Unicode
3386
- ===============================
3387
-
3388
- This library uses Java’s built-in ’char’ datatype. Up to Java 1.4, this
3389
- datatype only supports 16-bit Unicode code points, also called the Basic
3390
- Multilingual Plane. For this reason, this library doesn’t work for
3391
- Supplementary Characters (i.e. characters from U+10000 to U+10FFFF).
3392
- All references to such characters are silently ignored.
3393
-
3394
- Starting from Java 1.5, also Supplementary Characters will be
3395
- supported. However, this will require changes in the present version of
3396
- the library. Java 1.5 is currently in beta status.
3397
-
3398
- For more information refer to the documentation of
3399
- java.lang.Character in the JDK API.
3400
-
3401
- 
3402
- File: libidn.info, Node: C# API, Next: Acknowledgements, Prev: Java API, Up: Top
3403
-
3404
- 13 C# API
3405
- *********
3406
-
3407
- The Libidn library has been ported to the C# language. The port reside
3408
- in the top-level ‘csharp/’ directory. Currently, no further
3409
- documentation about the implementation or the API is available.
3410
- However, the C# port was based on the Java port, and the API is exactly
3411
- the same as in the Java version. The help files for the Java API may
3412
- thus be useful.
3413
-
3414
- 
3415
- File: libidn.info, Node: Acknowledgements, Next: History, Prev: C# API, Up: Top
3416
-
3417
- 14 Acknowledgements
3418
- *******************
3419
-
3420
- The punycode implementation was taken from the IETF IDN Punycode
3421
- specification, by Adam M. Costello. The TLD code was contributed by
3422
- Thomas Jacob. The Java implementation was contributed by Oliver Hitz.
3423
- The C# implementation was contributed by Alexander Gnauck. The Unicode
3424
- tables were provided by Unicode, Inc. Some functions for dealing with
3425
- Unicode (see nfkc.c and toutf8.c) were borrowed from GLib, downloaded
3426
- from <http://www.gtk.org/>. The manual borrowed text from Libgcrypt by
3427
- Werner Koch.
3428
-
3429
- Inspiration for many things that, consciously or not, have gone into
3430
- this package is due to a number of free software package that the author
3431
- has been exposed to. The author wishes to acknowledge the free software
3432
- community in general, for giving an example on what role software
3433
- development can play in the modern society.
3434
-
3435
- Several people reported bugs, sent patches or suggested improvements,
3436
- see the file THANKS in the top-level directory of the source code.
3437
-
3438
- 
3439
- File: libidn.info, Node: History, Next: PR29 discussion, Prev: Acknowledgements, Up: Top
3440
-
3441
- 15 History
3442
- **********
3443
-
3444
- The complete history of user visible changes is stored in the file
3445
- ‘NEWS’ in the top-level directory of the source code tree. The complete
3446
- history of modifications to each file is stored in the file ‘ChangeLog’
3447
- in the same directory. This section contain a condensed version of that
3448
- information, in the form of “milestones” for the project.
3449
-
3450
- Stringprep implementation.
3451
- Version 0.0.0 released on 2002-11-05.
3452
-
3453
- IDNA and Punycode implementations, part of the GNU project.
3454
- Version 0.1.0 released on 2003-01-05.
3455
-
3456
- Uses official IDNA ACE prefix ‘xn--’.
3457
- Version 0.1.7 released on 2003-02-12.
3458
-
3459
- Command line interface.
3460
- Version 0.1.11 released on 2003-02-26.
3461
-
3462
- GNU Libc add-on proposed.
3463
- Version 0.1.12 released on 2003-03-06.
3464
-
3465
- Interoperability testing during IDNConnect.
3466
- Version 0.3.1 released on 2003-10-02.
3467
-
3468
- TLD restriction testing.
3469
- Version 0.4.0 released on 2004-02-28.
3470
-
3471
- GNU Libc add-on integrated.
3472
- Version 0.4.1 released on 2004-03-08.
3473
-
3474
- Native Java implementation.
3475
- Version 0.4.2-0.4.9 released between 2004-03-20 and 2004-06-11.
3476
-
3477
- PR-29 functions for “problem sequences”.
3478
- Version 0.5.0 released on 2004-06-26.
3479
-
3480
- Many small portability fixes and wider use.
3481
- Version 0.5.1 through 0.5.20, released between 2004-07-09 and
3482
- 2005-10-23.
3483
-
3484
- Native C# implementation.
3485
- Version 0.6.0 released on 2005-12-03.
3486
-
3487
- Windows support through cross-compilation.
3488
- Version 0.6.1 released on 2006-01-20.
3489
-
3490
- Library declared stable by releasing v1.0.
3491
- Version 1.0 released on 2007-07-31.
3492
-
3493
- 
3494
- File: libidn.info, Node: PR29 discussion, Next: On Label Separators, Prev: History, Up: Top
3495
-
3496
- Appendix A PR29 discussion
3497
- **************************
3498
-
3499
- If you wish to experiment with a modified Unicode NFKC implementation
3500
- according to the PR29 proposal, you may find the following bug report
3501
- useful. However, I have not verified that the suggested modifications
3502
- are correct. For reference, I’m including my response to the report as
3503
- well.
3504
-
3505
- From: Rick McGowan <rick@unicode.org>
3506
- Subject: Possible bug and status of PR 29 change(s)
3507
- To: bug-libidn@gnu.org
3508
- Date: Wed, 27 Oct 2004 14:49:17 -0700
3509
-
3510
- Hello. On behalf of the Unicode Consortium editorial committee, I would
3511
- like to find out more information about the PR 29 fixes, if any, and
3512
- functions in Libidn. Your implementation was listed in the text of PR29 as
3513
- needing investigation, so I am following up on several implementations.
3514
-
3515
- The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new
3516
- draft of UAX #15 has been issued.
3517
-
3518
- I have looked at Libidn 0.5.8 (today), and there may still be a possible
3519
- bug in NFKC.java and nfkc.c.
3520
-
3521
- ------------------------------------------------------
3522
-
3523
- 1. In NFKC.java, this line in canonicalOrdering():
3524
-
3525
- if (i > 0 && (last_cc == 0 || last_cc != cc)) {
3526
-
3527
- should perhaps be changed to:
3528
-
3529
- if (i > 0 && (last_cc == 0 || last_cc < cc)) {
3530
-
3531
- but I'm not sure of the sense of this comparison.
3532
-
3533
- ------------------------------------------------------
3534
-
3535
- 2. In nfkc.c, function _g_utf8_normalize_wc() has this code:
3536
-
3537
- if (i > 0 &&
3538
- (last_cc == 0 || last_cc != cc) &&
3539
- combine (wc_buffer[last_start], wc_buffer[i],
3540
- &wc_buffer[last_start]))
3541
- {
3542
-
3543
- This appears to have the same bug as the current Python implementation (in
3544
- Python 2.3.4). The code should be checking, as per new rule D2 UAX #15
3545
- update, that the next combining character is the same or HIGHER than the
3546
- current one. It now checks to see if it's non-zero and not equal.
3547
-
3548
- The above line(s) should perhaps be changed to:
3549
-
3550
- if (i > 0 &&
3551
- (last_cc == 0 || last_cc < cc) &&
3552
- combine (wc_buffer[last_start], wc_buffer[i],
3553
- &wc_buffer[last_start]))
3554
- {
3555
-
3556
- but I'm not sure of the sense of the comparison (< or > or <=?) here.
3557
-
3558
- In the text of PR29, I will be marking Libidn as "needs change" and adding
3559
- the version number that I checked. If any further change is made, please
3560
- let me know the release version, and I'll update again.
3561
-
3562
- Regards,
3563
- Rick McGowan
3564
-
3565
- From: Simon Josefsson <jas@extundo.com>
3566
- Subject: Re: Possible bug and status of PR 29 change(s)
3567
- To: Rick McGowan <rick@unicode.org>
3568
- Cc: bug-libidn@gnu.org
3569
- Date: Thu, 28 Oct 2004 09:47:47 +0200
3570
-
3571
- Rick McGowan <rick@unicode.org> writes:
3572
-
3573
- > Hello. On behalf of the Unicode Consortium editorial committee, I would
3574
- > like to find out more information about the PR 29 fixes, if any, and
3575
- > functions in Libidn. Your implementation was listed in the text of PR29 as
3576
- > needing investigation, so I am following up on several implementations.
3577
- >
3578
- > The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new
3579
- > draft of UAX #15 has been issued.
3580
- >
3581
- > I have looked at Libidn 0.5.8 (today), and there may still be a possible
3582
- > bug in NFKC.java and nfkc.c.
3583
-
3584
- Hello Rick.
3585
-
3586
- I believe the current behavior is intentional. Libidn do not aim to
3587
- implement latest-and-greatest NFKC, it aim to implement the NFKC
3588
- functionality required for StringPrep and IDN. As you may know,
3589
- StringPrep/IDN reference Unicode 3.2.0, and explicitly says any later
3590
- changes (which I consider PR29 as) do not apply.
3591
-
3592
- In fact, I believe that would I incorporate the changes suggested in
3593
- PR29, I would in fact be violating the IDN specifications.
3594
-
3595
- Thanks for looking into the code and finding the place where the
3596
- change could be made. I'll see if I can mention this in the manual
3597
- somewhere, for technically interested readers.
3598
-
3599
- Regards,
3600
- Simon
3601
-
3602
- 
3603
- File: libidn.info, Node: On Label Separators, Next: Copying Information, Prev: PR29 discussion, Up: Top
3604
-
3605
- Appendix B On Label Separators
3606
- ******************************
3607
-
3608
- Some strings contains characters whose NFKC normalized form contain the
3609
- ASCII dot (0x2E, “.”). Examples of these characters are U+2024 (ONE DOT
3610
- LEADER) and U+248C (DIGIT FIVE FULL STOP). The strings have the
3611
- interesting property that their IDNA ToASCII output will contain
3612
- embedded dots. For example:
3613
-
3614
- ToASCII (hi U+248C com) = hi5.com
3615
- ToASCII (räksmörgås U+2024 com) = xn--rksmrgs.com-l8as9u
3616
-
3617
- This demonstrate the two general cases: The first where the ASCII dot
3618
- is part of an output that do not begin with the IDN prefix ‘xn--’. The
3619
- second example illustrate when the dot is part of IDN prefixed with
3620
- ‘xn--’.
3621
-
3622
- The input strings are, from the DNS point of view, a single label.
3623
- The IDNA algorithm translate one label at a time. Thus, the output is
3624
- expected to be only one label. What is important here is to make sure
3625
- the DNS resolver receives the correct query. The DNS protocol does not
3626
- use the dot to delimit labels on the wire, rather it uses length-value
3627
- pairs. Thus the correct query would be for ‘{7}hi5.com’ and
3628
- ‘{22}xn--rksmrgs.com-l8as9u’ respectively.
3629
-
3630
- Some implementations (1) have decided that these inputs strings are
3631
- potentially confusing for the user. The string ‘hi U+248C com’ looks
3632
- like ‘hi5.com’ on systems that support Unicode properly. These
3633
- implementations do not follow RFC 3490. They yield:
3634
-
3635
- ToASCII (hi U+248C com) = hi5.com
3636
- ToASCII (räksmörgås U+2024 com) = xn--rksmrgs-5wao1o.com
3637
-
3638
- The DNS query they perform are ‘{3}hi5{3}com’ and
3639
- ‘{18}xn--rksmrgs-5wao1o{3}com’ respectively. Arguably, this leads to a
3640
- better user experience, and suggests that the IDNA specification is
3641
- sub-optimal in this area.
3642
-
3643
- B.1 Recommended Workaround
3644
- ==========================
3645
-
3646
- It has been suggested to normalize the entire input string using NFKC
3647
- before passing it to IDNA ToASCII. You may use
3648
- ‘stringprep_utf8_nfkc_normalize’ or ‘stringprep_ucs4_nfkc_normalize’.
3649
- This appears to lead to similar behaviour as IE/Firefox, which would
3650
- avoid the problem, but this needs to be confirmed. Feel free to discuss
3651
- the issue with us.
3652
-
3653
- Alternative workarounds are being considered. Eventually Libidn may
3654
- implement a new flag to the ‘idna_*’ functions that implements a
3655
- recommended way to work around this problem.
3656
-
3657
- ---------- Footnotes ----------
3658
-
3659
- (1) Notably Microsoft’s Internet Explorer and Mozilla’s Firefox, but
3660
- not Apple’s Safari.
3661
-
3662
- 
3663
- File: libidn.info, Node: Copying Information, Next: Function and Variable Index, Prev: On Label Separators, Up: Top
3664
-
3665
- Appendix C Copying Information
3666
- ******************************
3667
-
3668
- * Menu:
3669
-
3670
- * GNU Free Documentation License:: License for copying this manual.
3671
-
3672
- 
3673
- File: libidn.info, Node: GNU Free Documentation License, Up: Copying Information
3674
-
3675
- C.1 GNU Free Documentation License
3676
- ==================================
3677
-
3678
- Version 1.3, 3 November 2008
3679
-
3680
- Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
3681
- <http://fsf.org/>
3682
-
3683
- Everyone is permitted to copy and distribute verbatim copies
3684
- of this license document, but changing it is not allowed.
3685
-
3686
- 0. PREAMBLE
3687
-
3688
- The purpose of this License is to make a manual, textbook, or other
3689
- functional and useful document "free" in the sense of freedom: to
3690
- assure everyone the effective freedom to copy and redistribute it,
3691
- with or without modifying it, either commercially or
3692
- noncommercially. Secondarily, this License preserves for the
3693
- author and publisher a way to get credit for their work, while not
3694
- being considered responsible for modifications made by others.
3695
-
3696
- This License is a kind of “copyleft”, which means that derivative
3697
- works of the document must themselves be free in the same sense.
3698
- It complements the GNU General Public License, which is a copyleft
3699
- license designed for free software.
3700
-
3701
- We have designed this License in order to use it for manuals for
3702
- free software, because free software needs free documentation: a
3703
- free program should come with manuals providing the same freedoms
3704
- that the software does. But this License is not limited to
3705
- software manuals; it can be used for any textual work, regardless
3706
- of subject matter or whether it is published as a printed book. We
3707
- recommend this License principally for works whose purpose is
3708
- instruction or reference.
3709
-
3710
- 1. APPLICABILITY AND DEFINITIONS
3711
-
3712
- This License applies to any manual or other work, in any medium,
3713
- that contains a notice placed by the copyright holder saying it can
3714
- be distributed under the terms of this License. Such a notice
3715
- grants a world-wide, royalty-free license, unlimited in duration,
3716
- to use that work under the conditions stated herein. The
3717
- “Document”, below, refers to any such manual or work. Any member
3718
- of the public is a licensee, and is addressed as “you”. You accept
3719
- the license if you copy, modify or distribute the work in a way
3720
- requiring permission under copyright law.
3721
-
3722
- A “Modified Version” of the Document means any work containing the
3723
- Document or a portion of it, either copied verbatim, or with
3724
- modifications and/or translated into another language.
3725
-
3726
- A “Secondary Section” is a named appendix or a front-matter section
3727
- of the Document that deals exclusively with the relationship of the
3728
- publishers or authors of the Document to the Document’s overall
3729
- subject (or to related matters) and contains nothing that could
3730
- fall directly within that overall subject. (Thus, if the Document
3731
- is in part a textbook of mathematics, a Secondary Section may not
3732
- explain any mathematics.) The relationship could be a matter of
3733
- historical connection with the subject or with related matters, or
3734
- of legal, commercial, philosophical, ethical or political position
3735
- regarding them.
3736
-
3737
- The “Invariant Sections” are certain Secondary Sections whose
3738
- titles are designated, as being those of Invariant Sections, in the
3739
- notice that says that the Document is released under this License.
3740
- If a section does not fit the above definition of Secondary then it
3741
- is not allowed to be designated as Invariant. The Document may
3742
- contain zero Invariant Sections. If the Document does not identify
3743
- any Invariant Sections then there are none.
3744
-
3745
- The “Cover Texts” are certain short passages of text that are
3746
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice
3747
- that says that the Document is released under this License. A
3748
- Front-Cover Text may be at most 5 words, and a Back-Cover Text may
3749
- be at most 25 words.
3750
-
3751
- A “Transparent” copy of the Document means a machine-readable copy,
3752
- represented in a format whose specification is available to the
3753
- general public, that is suitable for revising the document
3754
- straightforwardly with generic text editors or (for images composed
3755
- of pixels) generic paint programs or (for drawings) some widely
3756
- available drawing editor, and that is suitable for input to text
3757
- formatters or for automatic translation to a variety of formats
3758
- suitable for input to text formatters. A copy made in an otherwise
3759
- Transparent file format whose markup, or absence of markup, has
3760
- been arranged to thwart or discourage subsequent modification by
3761
- readers is not Transparent. An image format is not Transparent if
3762
- used for any substantial amount of text. A copy that is not
3763
- “Transparent” is called “Opaque”.
3764
-
3765
- Examples of suitable formats for Transparent copies include plain
3766
- ASCII without markup, Texinfo input format, LaTeX input format,
3767
- SGML or XML using a publicly available DTD, and standard-conforming
3768
- simple HTML, PostScript or PDF designed for human modification.
3769
- Examples of transparent image formats include PNG, XCF and JPG.
3770
- Opaque formats include proprietary formats that can be read and
3771
- edited only by proprietary word processors, SGML or XML for which
3772
- the DTD and/or processing tools are not generally available, and
3773
- the machine-generated HTML, PostScript or PDF produced by some word
3774
- processors for output purposes only.
3775
-
3776
- The “Title Page” means, for a printed book, the title page itself,
3777
- plus such following pages as are needed to hold, legibly, the
3778
- material this License requires to appear in the title page. For
3779
- works in formats which do not have any title page as such, “Title
3780
- Page” means the text near the most prominent appearance of the
3781
- work’s title, preceding the beginning of the body of the text.
3782
-
3783
- The “publisher” means any person or entity that distributes copies
3784
- of the Document to the public.
3785
-
3786
- A section “Entitled XYZ” means a named subunit of the Document
3787
- whose title either is precisely XYZ or contains XYZ in parentheses
3788
- following text that translates XYZ in another language. (Here XYZ
3789
- stands for a specific section name mentioned below, such as
3790
- “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.)
3791
- To “Preserve the Title” of such a section when you modify the
3792
- Document means that it remains a section “Entitled XYZ” according
3793
- to this definition.
3794
-
3795
- The Document may include Warranty Disclaimers next to the notice
3796
- which states that this License applies to the Document. These
3797
- Warranty Disclaimers are considered to be included by reference in
3798
- this License, but only as regards disclaiming warranties: any other
3799
- implication that these Warranty Disclaimers may have is void and
3800
- has no effect on the meaning of this License.
3801
-
3802
- 2. VERBATIM COPYING
3803
-
3804
- You may copy and distribute the Document in any medium, either
3805
- commercially or noncommercially, provided that this License, the
3806
- copyright notices, and the license notice saying this License
3807
- applies to the Document are reproduced in all copies, and that you
3808
- add no other conditions whatsoever to those of this License. You
3809
- may not use technical measures to obstruct or control the reading
3810
- or further copying of the copies you make or distribute. However,
3811
- you may accept compensation in exchange for copies. If you
3812
- distribute a large enough number of copies you must also follow the
3813
- conditions in section 3.
3814
-
3815
- You may also lend copies, under the same conditions stated above,
3816
- and you may publicly display copies.
3817
-
3818
- 3. COPYING IN QUANTITY
3819
-
3820
- If you publish printed copies (or copies in media that commonly
3821
- have printed covers) of the Document, numbering more than 100, and
3822
- the Document’s license notice requires Cover Texts, you must
3823
- enclose the copies in covers that carry, clearly and legibly, all
3824
- these Cover Texts: Front-Cover Texts on the front cover, and
3825
- Back-Cover Texts on the back cover. Both covers must also clearly
3826
- and legibly identify you as the publisher of these copies. The
3827
- front cover must present the full title with all words of the title
3828
- equally prominent and visible. You may add other material on the
3829
- covers in addition. Copying with changes limited to the covers, as
3830
- long as they preserve the title of the Document and satisfy these
3831
- conditions, can be treated as verbatim copying in other respects.
3832
-
3833
- If the required texts for either cover are too voluminous to fit
3834
- legibly, you should put the first ones listed (as many as fit
3835
- reasonably) on the actual cover, and continue the rest onto
3836
- adjacent pages.
3837
-
3838
- If you publish or distribute Opaque copies of the Document
3839
- numbering more than 100, you must either include a machine-readable
3840
- Transparent copy along with each Opaque copy, or state in or with
3841
- each Opaque copy a computer-network location from which the general
3842
- network-using public has access to download using public-standard
3843
- network protocols a complete Transparent copy of the Document, free
3844
- of added material. If you use the latter option, you must take
3845
- reasonably prudent steps, when you begin distribution of Opaque
3846
- copies in quantity, to ensure that this Transparent copy will
3847
- remain thus accessible at the stated location until at least one
3848
- year after the last time you distribute an Opaque copy (directly or
3849
- through your agents or retailers) of that edition to the public.
3850
-
3851
- It is requested, but not required, that you contact the authors of
3852
- the Document well before redistributing any large number of copies,
3853
- to give them a chance to provide you with an updated version of the
3854
- Document.
3855
-
3856
- 4. MODIFICATIONS
3857
-
3858
- You may copy and distribute a Modified Version of the Document
3859
- under the conditions of sections 2 and 3 above, provided that you
3860
- release the Modified Version under precisely this License, with the
3861
- Modified Version filling the role of the Document, thus licensing
3862
- distribution and modification of the Modified Version to whoever
3863
- possesses a copy of it. In addition, you must do these things in
3864
- the Modified Version:
3865
-
3866
- A. Use in the Title Page (and on the covers, if any) a title
3867
- distinct from that of the Document, and from those of previous
3868
- versions (which should, if there were any, be listed in the
3869
- History section of the Document). You may use the same title
3870
- as a previous version if the original publisher of that
3871
- version gives permission.
3872
-
3873
- B. List on the Title Page, as authors, one or more persons or
3874
- entities responsible for authorship of the modifications in
3875
- the Modified Version, together with at least five of the
3876
- principal authors of the Document (all of its principal
3877
- authors, if it has fewer than five), unless they release you
3878
- from this requirement.
3879
-
3880
- C. State on the Title page the name of the publisher of the
3881
- Modified Version, as the publisher.
3882
-
3883
- D. Preserve all the copyright notices of the Document.
3884
-
3885
- E. Add an appropriate copyright notice for your modifications
3886
- adjacent to the other copyright notices.
3887
-
3888
- F. Include, immediately after the copyright notices, a license
3889
- notice giving the public permission to use the Modified
3890
- Version under the terms of this License, in the form shown in
3891
- the Addendum below.
3892
-
3893
- G. Preserve in that license notice the full lists of Invariant
3894
- Sections and required Cover Texts given in the Document’s
3895
- license notice.
3896
-
3897
- H. Include an unaltered copy of this License.
3898
-
3899
- I. Preserve the section Entitled “History”, Preserve its Title,
3900
- and add to it an item stating at least the title, year, new
3901
- authors, and publisher of the Modified Version as given on the
3902
- Title Page. If there is no section Entitled “History” in the
3903
- Document, create one stating the title, year, authors, and
3904
- publisher of the Document as given on its Title Page, then add
3905
- an item describing the Modified Version as stated in the
3906
- previous sentence.
3907
-
3908
- J. Preserve the network location, if any, given in the Document
3909
- for public access to a Transparent copy of the Document, and
3910
- likewise the network locations given in the Document for
3911
- previous versions it was based on. These may be placed in the
3912
- “History” section. You may omit a network location for a work
3913
- that was published at least four years before the Document
3914
- itself, or if the original publisher of the version it refers
3915
- to gives permission.
3916
-
3917
- K. For any section Entitled “Acknowledgements” or “Dedications”,
3918
- Preserve the Title of the section, and preserve in the section
3919
- all the substance and tone of each of the contributor
3920
- acknowledgements and/or dedications given therein.
3921
-
3922
- L. Preserve all the Invariant Sections of the Document, unaltered
3923
- in their text and in their titles. Section numbers or the
3924
- equivalent are not considered part of the section titles.
3925
-
3926
- M. Delete any section Entitled “Endorsements”. Such a section
3927
- may not be included in the Modified Version.
3928
-
3929
- N. Do not retitle any existing section to be Entitled
3930
- “Endorsements” or to conflict in title with any Invariant
3931
- Section.
3932
-
3933
- O. Preserve any Warranty Disclaimers.
3934
-
3935
- If the Modified Version includes new front-matter sections or
3936
- appendices that qualify as Secondary Sections and contain no
3937
- material copied from the Document, you may at your option designate
3938
- some or all of these sections as invariant. To do this, add their
3939
- titles to the list of Invariant Sections in the Modified Version’s
3940
- license notice. These titles must be distinct from any other
3941
- section titles.
3942
-
3943
- You may add a section Entitled “Endorsements”, provided it contains
3944
- nothing but endorsements of your Modified Version by various
3945
- parties—for example, statements of peer review or that the text has
3946
- been approved by an organization as the authoritative definition of
3947
- a standard.
3948
-
3949
- You may add a passage of up to five words as a Front-Cover Text,
3950
- and a passage of up to 25 words as a Back-Cover Text, to the end of
3951
- the list of Cover Texts in the Modified Version. Only one passage
3952
- of Front-Cover Text and one of Back-Cover Text may be added by (or
3953
- through arrangements made by) any one entity. If the Document
3954
- already includes a cover text for the same cover, previously added
3955
- by you or by arrangement made by the same entity you are acting on
3956
- behalf of, you may not add another; but you may replace the old
3957
- one, on explicit permission from the previous publisher that added
3958
- the old one.
3959
-
3960
- The author(s) and publisher(s) of the Document do not by this
3961
- License give permission to use their names for publicity for or to
3962
- assert or imply endorsement of any Modified Version.
3963
-
3964
- 5. COMBINING DOCUMENTS
3965
-
3966
- You may combine the Document with other documents released under
3967
- this License, under the terms defined in section 4 above for
3968
- modified versions, provided that you include in the combination all
3969
- of the Invariant Sections of all of the original documents,
3970
- unmodified, and list them all as Invariant Sections of your
3971
- combined work in its license notice, and that you preserve all
3972
- their Warranty Disclaimers.
3973
-
3974
- The combined work need only contain one copy of this License, and
3975
- multiple identical Invariant Sections may be replaced with a single
3976
- copy. If there are multiple Invariant Sections with the same name
3977
- but different contents, make the title of each such section unique
3978
- by adding at the end of it, in parentheses, the name of the
3979
- original author or publisher of that section if known, or else a
3980
- unique number. Make the same adjustment to the section titles in
3981
- the list of Invariant Sections in the license notice of the
3982
- combined work.
3983
-
3984
- In the combination, you must combine any sections Entitled
3985
- “History” in the various original documents, forming one section
3986
- Entitled “History”; likewise combine any sections Entitled
3987
- “Acknowledgements”, and any sections Entitled “Dedications”. You
3988
- must delete all sections Entitled “Endorsements.”
3989
-
3990
- 6. COLLECTIONS OF DOCUMENTS
3991
-
3992
- You may make a collection consisting of the Document and other
3993
- documents released under this License, and replace the individual
3994
- copies of this License in the various documents with a single copy
3995
- that is included in the collection, provided that you follow the
3996
- rules of this License for verbatim copying of each of the documents
3997
- in all other respects.
3998
-
3999
- You may extract a single document from such a collection, and
4000
- distribute it individually under this License, provided you insert
4001
- a copy of this License into the extracted document, and follow this
4002
- License in all other respects regarding verbatim copying of that
4003
- document.
4004
-
4005
- 7. AGGREGATION WITH INDEPENDENT WORKS
4006
-
4007
- A compilation of the Document or its derivatives with other
4008
- separate and independent documents or works, in or on a volume of a
4009
- storage or distribution medium, is called an “aggregate” if the
4010
- copyright resulting from the compilation is not used to limit the
4011
- legal rights of the compilation’s users beyond what the individual
4012
- works permit. When the Document is included in an aggregate, this
4013
- License does not apply to the other works in the aggregate which
4014
- are not themselves derivative works of the Document.
4015
-
4016
- If the Cover Text requirement of section 3 is applicable to these
4017
- copies of the Document, then if the Document is less than one half
4018
- of the entire aggregate, the Document’s Cover Texts may be placed
4019
- on covers that bracket the Document within the aggregate, or the
4020
- electronic equivalent of covers if the Document is in electronic
4021
- form. Otherwise they must appear on printed covers that bracket
4022
- the whole aggregate.
4023
-
4024
- 8. TRANSLATION
4025
-
4026
- Translation is considered a kind of modification, so you may
4027
- distribute translations of the Document under the terms of section
4028
- 4. Replacing Invariant Sections with translations requires special
4029
- permission from their copyright holders, but you may include
4030
- translations of some or all Invariant Sections in addition to the
4031
- original versions of these Invariant Sections. You may include a
4032
- translation of this License, and all the license notices in the
4033
- Document, and any Warranty Disclaimers, provided that you also
4034
- include the original English version of this License and the
4035
- original versions of those notices and disclaimers. In case of a
4036
- disagreement between the translation and the original version of
4037
- this License or a notice or disclaimer, the original version will
4038
- prevail.
4039
-
4040
- If a section in the Document is Entitled “Acknowledgements”,
4041
- “Dedications”, or “History”, the requirement (section 4) to
4042
- Preserve its Title (section 1) will typically require changing the
4043
- actual title.
4044
-
4045
- 9. TERMINATION
4046
-
4047
- You may not copy, modify, sublicense, or distribute the Document
4048
- except as expressly provided under this License. Any attempt
4049
- otherwise to copy, modify, sublicense, or distribute it is void,
4050
- and will automatically terminate your rights under this License.
4051
-
4052
- However, if you cease all violation of this License, then your
4053
- license from a particular copyright holder is reinstated (a)
4054
- provisionally, unless and until the copyright holder explicitly and
4055
- finally terminates your license, and (b) permanently, if the
4056
- copyright holder fails to notify you of the violation by some
4057
- reasonable means prior to 60 days after the cessation.
4058
-
4059
- Moreover, your license from a particular copyright holder is
4060
- reinstated permanently if the copyright holder notifies you of the
4061
- violation by some reasonable means, this is the first time you have
4062
- received notice of violation of this License (for any work) from
4063
- that copyright holder, and you cure the violation prior to 30 days
4064
- after your receipt of the notice.
4065
-
4066
- Termination of your rights under this section does not terminate
4067
- the licenses of parties who have received copies or rights from you
4068
- under this License. If your rights have been terminated and not
4069
- permanently reinstated, receipt of a copy of some or all of the
4070
- same material does not give you any rights to use it.
4071
-
4072
- 10. FUTURE REVISIONS OF THIS LICENSE
4073
-
4074
- The Free Software Foundation may publish new, revised versions of
4075
- the GNU Free Documentation License from time to time. Such new
4076
- versions will be similar in spirit to the present version, but may
4077
- differ in detail to address new problems or concerns. See
4078
- <http://www.gnu.org/copyleft/>.
4079
-
4080
- Each version of the License is given a distinguishing version
4081
- number. If the Document specifies that a particular numbered
4082
- version of this License “or any later version” applies to it, you
4083
- have the option of following the terms and conditions either of
4084
- that specified version or of any later version that has been
4085
- published (not as a draft) by the Free Software Foundation. If the
4086
- Document does not specify a version number of this License, you may
4087
- choose any version ever published (not as a draft) by the Free
4088
- Software Foundation. If the Document specifies that a proxy can
4089
- decide which future versions of this License can be used, that
4090
- proxy’s public statement of acceptance of a version permanently
4091
- authorizes you to choose that version for the Document.
4092
-
4093
- 11. RELICENSING
4094
-
4095
- “Massive Multiauthor Collaboration Site” (or “MMC Site”) means any
4096
- World Wide Web server that publishes copyrightable works and also
4097
- provides prominent facilities for anybody to edit those works. A
4098
- public wiki that anybody can edit is an example of such a server.
4099
- A “Massive Multiauthor Collaboration” (or “MMC”) contained in the
4100
- site means any set of copyrightable works thus published on the MMC
4101
- site.
4102
-
4103
- “CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0
4104
- license published by Creative Commons Corporation, a not-for-profit
4105
- corporation with a principal place of business in San Francisco,
4106
- California, as well as future copyleft versions of that license
4107
- published by that same organization.
4108
-
4109
- “Incorporate” means to publish or republish a Document, in whole or
4110
- in part, as part of another Document.
4111
-
4112
- An MMC is “eligible for relicensing” if it is licensed under this
4113
- License, and if all works that were first published under this
4114
- License somewhere other than this MMC, and subsequently
4115
- incorporated in whole or in part into the MMC, (1) had no cover
4116
- texts or invariant sections, and (2) were thus incorporated prior
4117
- to November 1, 2008.
4118
-
4119
- The operator of an MMC Site may republish an MMC contained in the
4120
- site under CC-BY-SA on the same site at any time before August 1,
4121
- 2009, provided the MMC is eligible for relicensing.
4122
-
4123
- ADDENDUM: How to use this License for your documents
4124
- ====================================================
4125
-
4126
- To use this License in a document you have written, include a copy of
4127
- the License in the document and put the following copyright and license
4128
- notices just after the title page:
4129
-
4130
- Copyright (C) YEAR YOUR NAME.
4131
- Permission is granted to copy, distribute and/or modify this document
4132
- under the terms of the GNU Free Documentation License, Version 1.3
4133
- or any later version published by the Free Software Foundation;
4134
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
4135
- Texts. A copy of the license is included in the section entitled ``GNU
4136
- Free Documentation License''.
4137
-
4138
- If you have Invariant Sections, Front-Cover Texts and Back-Cover
4139
- Texts, replace the “with…Texts.” line with this:
4140
-
4141
- with the Invariant Sections being LIST THEIR TITLES, with
4142
- the Front-Cover Texts being LIST, and with the Back-Cover Texts
4143
- being LIST.
4144
-
4145
- If you have Invariant Sections without Cover Texts, or some other
4146
- combination of the three, merge those two alternatives to suit the
4147
- situation.
4148
-
4149
- If your document contains nontrivial examples of program code, we
4150
- recommend releasing these examples in parallel under your choice of free
4151
- software license, such as the GNU General Public License, to permit
4152
- their use in free software.
4153
-
4154
- 
4155
- File: libidn.info, Node: Function and Variable Index, Next: Concept Index, Prev: Copying Information, Up: Top
4156
-
4157
- Function and Variable Index
4158
- ***************************
4159
-
4160
- [index]
4161
- * Menu:
4162
-
4163
- * idna-to-ascii: Emacs API. (line 64)
4164
- * idna-to-unicode: Emacs API. (line 69)
4165
- * idna_strerror: IDNA Functions. (line 309)
4166
- * idna_to_ascii_4i: IDNA Functions. (line 66)
4167
- * idna_to_ascii_4z: IDNA Functions. (line 150)
4168
- * idna_to_ascii_8z: IDNA Functions. (line 168)
4169
- * idna_to_ascii_lz: IDNA Functions. (line 186)
4170
- * idna_to_unicode_44i: IDNA Functions. (line 104)
4171
- * idna_to_unicode_4z4z: IDNA Functions. (line 208)
4172
- * idna_to_unicode_8z4z: IDNA Functions. (line 227)
4173
- * idna_to_unicode_8z8z: IDNA Functions. (line 246)
4174
- * idna_to_unicode_8zlz: IDNA Functions. (line 265)
4175
- * idna_to_unicode_lzlz: IDNA Functions. (line 285)
4176
- * idn_free: Memory handling under Windows.
4177
- (line 30)
4178
- * pr29_4: PR29 Functions. (line 54)
4179
- * pr29_4z: PR29 Functions. (line 74)
4180
- * pr29_8z: PR29 Functions. (line 89)
4181
- * pr29_strerror: PR29 Functions. (line 108)
4182
- * punycode-decode: Emacs API. (line 38)
4183
- * punycode-encode: Emacs API. (line 34)
4184
- * punycode_decode: Punycode Functions. (line 92)
4185
- * punycode_encode: Punycode Functions. (line 48)
4186
- * punycode_strerror: Punycode Functions. (line 138)
4187
- * stringprep: Stringprep Functions.
4188
- (line 124)
4189
- * stringprep_4i: Stringprep Functions.
4190
- (line 54)
4191
- * stringprep_4zi: Stringprep Functions.
4192
- (line 93)
4193
- * stringprep_check_version: Version Check. (line 15)
4194
- * stringprep_convert: Utility Functions. (line 163)
4195
- * stringprep_iscsi: Stringprep Functions.
4196
- (line 257)
4197
- * stringprep_locale_charset: Utility Functions. (line 141)
4198
- * stringprep_locale_to_utf8: Utility Functions. (line 180)
4199
- * stringprep_nameprep_no_unassigned: Stringprep Functions.
4200
- (line 246)
4201
- * stringprep_plain: Stringprep Functions.
4202
- (line 266)
4203
- * stringprep_profile: Stringprep Functions.
4204
- (line 159)
4205
- * stringprep_strerror: Stringprep Functions.
4206
- (line 193)
4207
- * stringprep_ucs4_nfkc_normalize: Utility Functions. (line 97)
4208
- * stringprep_ucs4_to_utf8: Utility Functions. (line 50)
4209
- * stringprep_unichar_to_utf8: Utility Functions. (line 24)
4210
- * stringprep_utf8_nfkc_normalize: Utility Functions. (line 112)
4211
- * stringprep_utf8_to_locale: Utility Functions. (line 192)
4212
- * stringprep_utf8_to_ucs4: Utility Functions. (line 73)
4213
- * stringprep_utf8_to_unichar: Utility Functions. (line 38)
4214
- * stringprep_xmpp_nodeprep: Stringprep Functions.
4215
- (line 275)
4216
- * stringprep_xmpp_resourceprep: Stringprep Functions.
4217
- (line 284)
4218
- * tld_check_4: TLD Functions. (line 174)
4219
- * tld_check_4t: TLD Functions. (line 42)
4220
- * tld_check_4tz: TLD Functions. (line 66)
4221
- * tld_check_4z: TLD Functions. (line 203)
4222
- * tld_check_8z: TLD Functions. (line 229)
4223
- * tld_check_lz: TLD Functions. (line 257)
4224
- * tld_default_table: TLD Functions. (line 153)
4225
- * tld_get_4: TLD Functions. (line 90)
4226
- * tld_get_4z: TLD Functions. (line 108)
4227
- * tld_get_table: TLD Functions. (line 137)
4228
- * tld_get_z: TLD Functions. (line 122)
4229
- * tld_strerror: TLD Functions. (line 289)
4230
-
4231
- 
4232
- File: libidn.info, Node: Concept Index, Prev: Function and Variable Index, Up: Top
4233
-
4234
- Concept Index
4235
- *************
4236
-
4237
- [index]
4238
- * Menu:
4239
-
4240
- * AIX: Supported Platforms. (line 74)
4241
- * ARM: Supported Platforms. (line 128)
4242
- * Autoconf tests: Autoconf tests. (line 6)
4243
- * command line: Invoking idn. (line 5)
4244
- * Compiling your application: Building the source. (line 6)
4245
- * Configure tests: Autoconf tests. (line 6)
4246
- * Contributing: Contributing. (line 6)
4247
- * de-allocation: Memory handling under Windows.
4248
- (line 6)
4249
- * Debian: Supported Platforms. (line 10)
4250
- * Debian <1>: Supported Platforms. (line 22)
4251
- * Download: Downloading and Installing.
4252
- (line 6)
4253
- * Examples: Examples. (line 6)
4254
- * FDL, GNU Free Documentation License: GNU Free Documentation License.
4255
- (line 6)
4256
- * free: Memory handling under Windows.
4257
- (line 6)
4258
- * FreeBSD: Supported Platforms. (line 110)
4259
- * Hacking: Contributing. (line 6)
4260
- * heap memory: Memory handling under Windows.
4261
- (line 6)
4262
- * HP-UX: Supported Platforms. (line 82)
4263
- * IBM: Supported Platforms. (line 136)
4264
- * idn: Invoking idn. (line 6)
4265
- * IDNA Functions: IDNA Functions. (line 6)
4266
- * Installation: Downloading and Installing.
4267
- (line 6)
4268
- * invoking ‘idn’: Invoking idn. (line 6)
4269
- * IRIX: Supported Platforms. (line 70)
4270
- * MacOS X: Supported Platforms. (line 116)
4271
- * MacOS X <1>: Supported Platforms. (line 120)
4272
- * Mandrake: Supported Platforms. (line 66)
4273
- * Memory handling: Memory handling under Windows.
4274
- (line 6)
4275
- * Microsoft: Supported Platforms. (line 132)
4276
- * mingw32: Supported Platforms. (line 132)
4277
- * Motorola Coldfire: Supported Platforms. (line 124)
4278
- * NetBSD: Supported Platforms. (line 100)
4279
- * OpenBSD: Supported Platforms. (line 105)
4280
- * OpenPower 720: Supported Platforms. (line 45)
4281
- * OS/2: Supported Platforms. (line 136)
4282
- * PR29 Functions: PR29 Functions. (line 6)
4283
- * Punycode Functions: Punycode Functions. (line 6)
4284
- * RedHat: Supported Platforms. (line 49)
4285
- * RedHat <1>: Supported Platforms. (line 54)
4286
- * RedHat <2>: Supported Platforms. (line 62)
4287
- * RedHat Advanced Server: Supported Platforms. (line 58)
4288
- * Reporting Bugs: Bug Reports. (line 6)
4289
- * Solaris: Supported Platforms. (line 87)
4290
- * Solaris <1>: Supported Platforms. (line 91)
4291
- * Solaris <2>: Supported Platforms. (line 95)
4292
- * Stringprep Functions: Stringprep Functions.
4293
- (line 6)
4294
- * SuSE: Supported Platforms. (line 31)
4295
- * SuSE Linux: Supported Platforms. (line 36)
4296
- * SuSE Linux <1>: Supported Platforms. (line 40)
4297
- * SuSE Linux <2>: Supported Platforms. (line 45)
4298
- * TLD Functions: TLD Functions. (line 6)
4299
- * Tru64: Supported Platforms. (line 26)
4300
- * uClibc: Supported Platforms. (line 124)
4301
- * uClinux: Supported Platforms. (line 124)
4302
- * Utility Functions: Utility Functions. (line 6)
4303
- * Windows: Supported Platforms. (line 78)
4304
- * Windows <1>: Supported Platforms. (line 132)
4305
-
4306
-
4307
- 
4308
- Tag Table:
4309
- Node: Top1021
4310
- Node: Introduction2727
4311
- Node: Getting Started5039
4312
- Node: Features6150
4313
- Node: Library Overview7504
4314
- Node: Supported Platforms8302
4315
- Node: Getting help12094
4316
- Node: Commercial Support12557
4317
- Node: Downloading and Installing13498
4318
- Node: Installing under Windows15863
4319
- Node: Bug Reports17267
4320
- Node: Contributing18673
4321
- Node: Preparation20676
4322
- Node: Header21398
4323
- Node: Initialization24509
4324
- Node: Version Check24706
4325
- Ref: stringprep_check_version25245
4326
- Node: Building the source26220
4327
- Node: Autoconf tests28142
4328
- Node: Memory handling under Windows30543
4329
- Ref: idn_free31503
4330
- Node: Utility Functions32061
4331
- Ref: stringprep_unichar_to_utf832733
4332
- Ref: stringprep_utf8_to_unichar33165
4333
- Ref: stringprep_ucs4_to_utf833555
4334
- Ref: stringprep_utf8_to_ucs434440
4335
- Ref: stringprep_ucs4_nfkc_normalize35265
4336
- Ref: stringprep_utf8_nfkc_normalize35762
4337
- Ref: stringprep_locale_charset36933
4338
- Ref: stringprep_convert37976
4339
- Ref: stringprep_locale_to_utf838545
4340
- Ref: stringprep_utf8_to_locale38934
4341
- Node: Stringprep Functions39293
4342
- Ref: stringprep_4i41220
4343
- Ref: stringprep_4zi42869
4344
- Ref: stringprep44115
4345
- Ref: stringprep_profile45475
4346
- Ref: stringprep_strerror46609
4347
- Node: Punycode Functions50310
4348
- Ref: punycode_encode52079
4349
- Ref: punycode_decode54314
4350
- Ref: punycode_strerror56483
4351
- Node: IDNA Functions57252
4352
- Ref: idna_to_ascii_4i59874
4353
- Ref: idna_to_unicode_44i61523
4354
- Ref: idna_to_ascii_4z63506
4355
- Ref: idna_to_ascii_8z64112
4356
- Ref: idna_to_ascii_lz64712
4357
- Ref: idna_to_unicode_4z4z65459
4358
- Ref: idna_to_unicode_8z4z66123
4359
- Ref: idna_to_unicode_8z8z66781
4360
- Ref: idna_to_unicode_8zlz67433
4361
- Ref: idna_to_unicode_lzlz68174
4362
- Ref: idna_strerror69002
4363
- Node: TLD Functions70626
4364
- Ref: tld_check_4t72287
4365
- Ref: tld_check_4tz73220
4366
- Ref: tld_get_474106
4367
- Ref: tld_get_4z74628
4368
- Ref: tld_get_z75054
4369
- Ref: tld_get_table75571
4370
- Ref: tld_default_table76115
4371
- Ref: tld_check_476860
4372
- Ref: tld_check_4z78161
4373
- Ref: tld_check_8z79378
4374
- Ref: tld_check_lz80696
4375
- Ref: tld_strerror82085
4376
- Node: PR29 Functions82911
4377
- Ref: pr29_485207
4378
- Ref: pr29_4z85848
4379
- Ref: pr29_8z86382
4380
- Ref: pr29_strerror87055
4381
- Node: Examples87778
4382
- Node: Example 188231
4383
- Node: Example 290810
4384
- Node: Example 397429
4385
- Node: Example 499971
4386
- Node: Example 5102522
4387
- Node: Invoking idn106007
4388
- Node: Emacs API113480
4389
- Node: Java API116298
4390
- Node: C# API121470
4391
- Node: Acknowledgements121939
4392
- Node: History123041
4393
- Node: PR29 discussion124704
4394
- Node: On Label Separators128574
4395
- Ref: On Label Separators-Footnote-1131094
4396
- Node: Copying Information131193
4397
- Node: GNU Free Documentation License131459
4398
- Node: Function and Variable Index156772
4399
- Node: Concept Index161758
4400
- 
4401
- End Tag Table
4402
-
4403
- 
4404
- Local Variables:
4405
- coding: utf-8
4406
- End: