| Top |
| #define | gwy_NC() |
| #define | gwy_C() |
| #define | GWY_SWAP() |
| #define | GWY_ORDER() |
| #define | gwy_strequal() |
| #define | GWY_CLAMP() |
| #define | gwy_clear() |
| #define | gwy_clear1() |
| #define | gwy_assign() |
| #define | GWY_SI_VALUE_FORMAT_FREE() |
| #define | GWY_FREE_ARRAY() |
| #define | GWY_FREE_STRING() |
| #define | GWY_FREE() |
| #define | gwy_debug() |
| #define | gwy_info() |
| void | gwy_debug_gnu () |
#define gwy_NC(context, string) context "\004" string
Form a source code prefixed translatable message.
The macro expands to context
and string
joined by "\004". It is similar to the standard NC_()
macro, but it is also very different because NC_() drops the context. The actual translation functions expect you
to provide it again. This macro creates a string which carries the context and can be used with a function such
as gwy_sgettext() or macro gwy_C().
#define gwy_C(string) gwy_sgettext(GETTEXT_PACKAGE, string)
Translate a prefixed translatable message in the default domain.
The macro expands to gwy_sgettext() with the first argument set to GETTEXT_DOMAIN. It thus relies on GETTEXT_DOMAIN
being correctly defined where the macro is used. See gwy_sgettext() documentation for a discussion where this can
be a useful function and where you should stick to the standard C_() macro.
#define GWY_SWAP(t, x, y)
Swaps two variables (more precisely lhs and rhs expressions) of type t
in a single statement.
Both x
and y
are evaluated multiple times as both lhs and rhs expressions. If their evaluation has any side
effect the result is undefined.
#define GWY_ORDER(t, x, y)
Ensures ascending order of two variables (more precisely lhs and rhs expressions) of type t
in a single statement.
The macro makes y
not smaller than x
. They may be still equal or their relation can be undefined (if either is
NaN).
Both x
and y
are evaluated multiple times as both lhs and rhs expressions. If their evaluation has any side
effect the result is undefined.
#define GWY_CLAMP(x, low, hi)
Ensures that x
is between the limits set by low
and hi
.
This macro differs from GLib's CLAMP() by G_UNLIKELY() assertions on the tests that x
is smaller than low
and
larger than hi
. This makes x
already being in the right range the fast code path.
It is supposed to be used on results of floating-point operations that should fall to a known range but may
occasionaly fail to due to rounding errors and in similar situations. Under normal circumstances, use CLAMP().
#define gwy_clear(array, n)
Fills a memory block representing an array with zeroes.
This is a shorthand for memset(), with the number of bytes to fill calculated from the type of the pointer.
See gwy_clear1() for a more convenient macro for clearing a single variable.
#define gwy_clear1(var)
Fills the memory occupied by a single variable with zeroes.
This is a shorthand for memset(), with the number of bytes to fill calculated from the type of the variable.
See gwy_clear() for clearing arrays and/or passing the address already as a pointer.
#define gwy_assign(dest, source, n)
Copies items from one memory block representing an array to another.
This is a shorthand for memcpy(), with the number of bytes to fill calculated from the type of the dest
pointer
(the type of source
does not enter the calculation!)
As with memcpy(), the memory blocks may not overlap.
#define GWY_FREE_ARRAY(arr)
Frees and nulls a pointer to a GArray if it exists.
The array memory must have been allocated using g_array_new() or a similar function.
If ptr
is not NULL, g_array_free() is called on it, freeing also array data, and NULL is assigned to the
variable. In all cases ptr
will be NULL at the end.
A useful property of this macro is its idempotence.
#define GWY_FREE_STRING(str)
Frees and nulls a pointer to a GString if it exists.
The array memory must have been allocated using g_string_new() or a similar function.
If ptr
is not NULL, g_string_free() is called on it, freeing also string data, and NULL is assigned to the
variable. In all cases ptr
will be NULL at the end.
A useful property of this macro is its idempotence.
#define GWY_FREE(ptr)
Frees and nulls a pointer if it exists.
The memory must have been allocated using one of the g_new() and g_malloc() class of functions.
If ptr
is not NULL, g_free() is called on it and NULL is assigned to the variable. In all cases ptr
will be
NULL at the end.
A useful property of this macro is its idempotence.
#define gwy_debug(format...)
Emits a debugging message to the program log.
The message is amended with additional information such as source file, line number or time (when possible) and
emitted at log level G_LOG_LEVEL_DEBUG via g_log().
It should be noted that the default GLib log handler discards G_LOG_LEVEL_DEBUG messages but the default Gwyddion
handler does not.
The macro expands to nothing if compiled without DEBUG defined.
#define gwy_info(format...)
Emits an informational message.
The message is emitted at log level G_LOG_LEVEL_INFO via g_log(). This macro is primarily meant for reporting of
non-fatal issues in file import modules.
It should be noted that the default GLib log handler discards G_LOG_LEVEL_INFO messages but the default Gwyddion
handler does not.
void gwy_debug_gnu (const gchar *domain,const gchar *fileline,const gchar *funcname,const gchar *format,...);
Print a debugging message.
To be used via gwy_debug(), should not be used directly.
#define GWY_GPARAM_RWE (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)
Standard property flags (read, write, static strings and explicitit notify).
Most object properties have the same standard GParamSpecFlags: G_PARAM_READWRITE, G_PARAM_STATIC_STRINGS and
G_PARAM_EXPLICIT_NOTIFY (some of them being combinations of multiple flags themselves). This macro can be used to
write them in a concise manner.