Annotate all examples with their language
[platform/upstream/glib.git] / gmodule / gmodule.c
index f166dba..56c0e0f 100644 (file)
@@ -12,9 +12,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
@@ -38,7 +36,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
-#ifdef HAVE_UNISTD_H
+#ifdef G_OS_UNIX
 #include <unistd.h>
 #endif
 #ifdef G_OS_WIN32
@@ -56,7 +54,7 @@
  * These functions provide a portable way to dynamically load object files
  * (commonly known as 'plug-ins'). The current implementation supports all
  * systems that provide an implementation of dlopen() (e.g. Linux/Sun), as
- * well as HP-UX via its shl_load() mechanism, and Windows platforms via DLLs.
+ * well as Windows platforms via DLLs.
  *
  * A program which wants to use these functions must be linked to the
  * libraries output by the command
@@ -81,9 +79,8 @@
  * <literal>g_quark_from_static_string ("my-module-stuff")</literal>,
  * it must ensure that it is never unloaded, by calling g_module_make_resident().
  *
- * <example>
- * <title>Calling a function defined in a <structname>GModule</structname></title>
- * <programlisting>
+ * Example: Calling a function defined in a GModule
+ * |[<!-- language="C" --> 
  * /&ast; the function signature for 'say_hello' &ast;/
  * typedef void (* SayHelloFunc) (const char *message);
  *
  *   if (!module)
  *     {
  *       g_set_error (error, FOO_ERROR, FOO_ERROR_BLAH,
- *                    "&percnt;s", g_module_error ());
+ *                    "%s", g_module_error ());
  *       return FALSE;
  *     }
  *
- *   if (!g_module_symbol (module, "say_hello", (gpointer *)&amp;say_hello))
+ *   if (!g_module_symbol (module, "say_hello", (gpointer *)&say_hello))
  *     {
  *       g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN,
- *                    "&percnt;s: &percnt;s", filename, g_module_error ());
+ *                    "%s: %s", filename, g_module_error ());
  *       if (!g_module_close (module))
- *         g_warning ("&percnt;s: &percnt;s", filename, g_module_error ());
+ *         g_warning ("%s: %s", filename, g_module_error ());
  *       return FALSE;
  *     }
  *
  *       g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN,
  *                    "symbol say_hello is NULL");
  *       if (!g_module_close (module))
- *         g_warning ("&percnt;s: &percnt;s", filename, g_module_error ());
+ *         g_warning ("%s: %s", filename, g_module_error ());
  *       return FALSE;
  *     }
  *
  *   say_hello ("Hello world!");
  *
  *   if (!g_module_close (module))
- *     g_warning ("&percnt;s: &percnt;s", filename, g_module_error ());
+ *     g_warning ("%s: %s", filename, g_module_error ());
  *   return TRUE;
  *  }
- * </programlisting>
- * </example>
+ * ]|
  */
 
 /**
  * @module: the #GModule corresponding to the module which has just been loaded
  *
  * Specifies the type of the module initialization function.
- * <indexterm zone="g-module-check-init"><primary>g_module_check_init</primary></indexterm>
  * If a module contains a function named g_module_check_init() it is called
  * automatically when the module is loaded. It is passed the #GModule structure
  * and should return %NULL on success or a string describing the initialization
  * GModuleUnload:
  * @module: the #GModule about to be unloaded
  *
- * <indexterm zone="g-module-unload"><primary>g_module_unload</primary></indexterm>
  * Specifies the type of the module function called when it is unloaded.
  * If a module contains a function named g_module_unload() it is called
  * automatically when the module is unloaded.
  * G_MODULE_SUFFIX:
  *
  * Expands to the proper shared library suffix for the current platform
- * without the leading dot. For the most Unices and Linux this is "so",
- * for some HP-UX versions this is "sl" and for Windows this is "dll".
+ * without the leading dot. For most Unices and Linux this is "so", and
+ * for Windows this is "dll".
  */
 
 /**
 
 /* We maintain a list of modules, so we can reference count them.
  * That's needed because some platforms don't support references counts on
- * modules e.g. the shl_* implementation of HP-UX
- * (http://www.stat.umn.edu/~luke/xls/projects/dlbasics/dlbasics.html).
- * Also, the module for the program itself is kept seperatedly for
+ * modules. Also, the module for the program itself is kept seperately for
  * faster access and because it has special semantics.
  */
 
@@ -287,8 +279,6 @@ g_module_set_error (const gchar *error)
 #define        SUPPORT_OR_RETURN(rv)   { g_module_set_error (NULL); }
 #if    (G_MODULE_IMPL == G_MODULE_IMPL_DL)
 #include "gmodule-dl.c"
-#elif  (G_MODULE_IMPL == G_MODULE_IMPL_DLD)
-#include "gmodule-dld.c"
 #elif  (G_MODULE_IMPL == G_MODULE_IMPL_WIN32)
 #include "gmodule-win32.c"
 #elif  (G_MODULE_IMPL == G_MODULE_IMPL_DYLD)
@@ -779,6 +769,13 @@ g_module_close (GModule *module)
   return g_module_error() == NULL;
 }
 
+/**
+ * g_module_make_resident:
+ * @module: a #GModule to make permanently resident
+ *
+ * Ensures that a module will never be unloaded.
+ * Any future g_module_close() calls on the module will be ignored.
+ */
 void
 g_module_make_resident (GModule *module)
 {
@@ -804,7 +801,7 @@ g_module_error (void)
  * g_module_symbol:
  * @module: a #GModule
  * @symbol_name: the name of the symbol to find
- * @symbol: returns the pointer to the symbol value
+ * @symbol: (out): returns the pointer to the symbol value
  *
  * Gets a symbol pointer from a module, such as one exported
  * by #G_MODULE_EXPORT. Note that a valid symbol can be %NULL.
@@ -845,7 +842,7 @@ g_module_symbol (GModule     *module,
     {
       gchar *error;
 
-      error = g_strconcat ("`", symbol_name, "': ", module_error, NULL);
+      error = g_strconcat ("'", symbol_name, "': ", module_error, NULL);
       g_module_set_error (error);
       g_free (error);
       *symbol = NULL;
@@ -857,10 +854,13 @@ g_module_symbol (GModule     *module,
 
 /**
  * g_module_name:
- * @module: a #GModule to make permanently resident
+ * @module: a #GModule
  *
- * Ensures that a module will never be unloaded.
- * Any future g_module_close() calls on the module will be ignored.
+ * Returns the filename that the module was opened with.
+ *
+ * If @module refers to the application itself, "main" is returned.
+ *
+ * Returns: (transfer none): the filename of the module
  */
 const gchar *
 g_module_name (GModule *module)
@@ -892,7 +892,7 @@ g_module_name (GModule *module)
 
 /**
  * g_module_build_path:
- * @directory: the directory where the module is. This can be %NULL
+ * @directory: (allow-none): the directory where the module is. This can be %NULL
  *     or the empty string to indicate that the standard platform-specific
  *     directories will be used, though that is not recommended
  * @module_name: the name of the module