+"The callback C<cb> will be called if there is an error. The parameters "
+"passed to the callback are an opaque data pointer and the error message "
+"string."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1317
+msgid ""
+"C<errno> is not passed to the callback. To get that the callback must call "
+"L</guestfs_last_errno>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1320
+msgid ""
+"Note that the message string C<msg> is freed as soon as the callback "
+"function returns, so if you want to stash it somewhere you must make your "
+"own copy."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1324
+msgid "The default handler prints messages on C<stderr>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1326
+msgid "If you set C<cb> to C<NULL> then I<no> handler is called."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1328
+msgid "guestfs_get_error_handler"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1330
+#, no-wrap
+msgid ""
+" guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n"
+" void **opaque_rtn);\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1333
+msgid "Returns the current error handler callback."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1335
+msgid "guestfs_set_out_of_memory_handler"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1337
+#, no-wrap
+msgid ""
+" typedef void (*guestfs_abort_cb) (void);\n"
+" int guestfs_set_out_of_memory_handler (guestfs_h *g,\n"
+" guestfs_abort_cb);\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1341
+msgid ""
+"The callback C<cb> will be called if there is an out of memory situation. "
+"I<Note this callback must not return>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1344
+msgid "The default is to call L<abort(3)>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1346
+msgid ""
+"You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1349
+msgid "guestfs_get_out_of_memory_handler"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1351
+#, no-wrap
+msgid ""
+" guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1353
+msgid "This returns the current out of memory handler."
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:1355
+msgid "API CALLS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1357 ../fish/guestfish.pod:958
+msgid "@ACTIONS@"
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:1359
+msgid "STRUCTURES"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1361
+msgid "@STRUCTS@"
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:1363
+msgid "AVAILABILITY"
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1365
+msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1367
+msgid ""
+"Using L</guestfs_available> you can test availability of the following "
+"groups of functions. This test queries the appliance to see if the "
+"appliance you are currently using supports the functionality."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1372
+msgid "@AVAILABILITY@"
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1374
+msgid "GUESTFISH supported COMMAND"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1376
+msgid ""
+"In L<guestfish(3)> there is a handy interactive command C<supported> which "
+"prints out the available groups and whether they are supported by this build "
+"of libguestfs. Note however that you have to do C<run> first."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1381
+msgid "SINGLE CALLS AT COMPILE TIME"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1383
+msgid ""
+"Since version 1.5.8, C<E<lt>guestfs.hE<gt>> defines symbols for each C API "
+"function, such as:"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1386
+#, no-wrap
+msgid ""
+" #define LIBGUESTFS_HAVE_DD 1\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1388
+msgid "if L</guestfs_dd> is available."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1390
+msgid ""
+"Before version 1.5.8, if you needed to test whether a single libguestfs "
+"function is available at compile time, we recommended using build tools such "
+"as autoconf or cmake. For example in autotools you could use:"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1395
+#, no-wrap
+msgid ""
+" AC_CHECK_LIB([guestfs],[guestfs_create])\n"
+" AC_CHECK_FUNCS([guestfs_dd])\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1398
+msgid ""
+"which would result in C<HAVE_GUESTFS_DD> being either defined or not defined "
+"in your program."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1401
+msgid "SINGLE CALLS AT RUN TIME"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1403
+msgid ""
+"Testing at compile time doesn't guarantee that a function really exists in "
+"the library. The reason is that you might be dynamically linked against a "
+"previous I<libguestfs.so> (dynamic library) which doesn't have the call. "
+"This situation unfortunately results in a segmentation fault, which is a "
+"shortcoming of the C dynamic linking system itself."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1410
+msgid ""
+"You can use L<dlopen(3)> to test if a function is available at run time, as "
+"in this example program (note that you still need the compile time check as "
+"well):"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1414
+#, no-wrap
+msgid ""
+" #include <stdio.h>\n"
+" #include <stdlib.h>\n"
+" #include <unistd.h>\n"
+" #include <dlfcn.h>\n"
+" #include <guestfs.h>\n"
+" \n"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1420
+#, no-wrap
+msgid ""
+" main ()\n"
+" {\n"
+" #ifdef LIBGUESTFS_HAVE_DD\n"
+" void *dl;\n"
+" int has_function;\n"
+" \n"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1426
+#, no-wrap
+msgid ""
+" /* Test if the function guestfs_dd is really available. */\n"
+" dl = dlopen (NULL, RTLD_LAZY);\n"
+" if (!dl) {\n"
+" fprintf (stderr, \"dlopen: %s\\n\", dlerror ());\n"
+" exit (EXIT_FAILURE);\n"
+" }\n"
+" has_function = dlsym (dl, \"guestfs_dd\") != NULL;\n"
+" dlclose (dl);\n"
+" \n"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1435
+#, no-wrap
+msgid ""
+" if (!has_function)\n"
+" printf (\"this libguestfs.so does NOT have guestfs_dd function\\n\");\n"
+" else {\n"
+" printf (\"this libguestfs.so has guestfs_dd function\\n\");\n"
+" /* Now it's safe to call\n"
+" guestfs_dd (g, \"foo\", \"bar\");\n"
+" */\n"
+" }\n"
+" #else\n"
+" printf (\"guestfs_dd function was not found at compile time\\n\");\n"
+" #endif\n"
+" }\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1448
+msgid ""
+"You may think the above is an awful lot of hassle, and it is. There are "
+"other ways outside of the C linking system to ensure that this kind of "
+"incompatibility never arises, such as using package versioning:"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:1453
+#, no-wrap
+msgid ""
+" Requires: libguestfs >= 1.0.80\n"
+"\n"
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:1455
+msgid "CALLS WITH OPTIONAL ARGUMENTS"