Exemplo n.º 1
0
static void
ensure_checksum(GwySurface *surface)
{
    gdouble *xydata;
    guint i, n, k;

    if (surface->priv->cached_checksum)
        return;

    n = surface->n;
    xydata = g_new(gdouble, 2*n);
    for (i = k = 0; i < n; i++) {
        xydata[k++] = surface->data[i].x;
        xydata[k++] = surface->data[i].y;
    }
    gwy_md5_get_digest((gchar*)xydata, 2*n*sizeof(gdouble),
                       surface->priv->checksum);
    g_free(xydata);

    surface->priv->cached_checksum = TRUE;
}
Exemplo n.º 2
0
static gchar*
gwy_recent_file_thumbnail_name(const gchar *uri)
{
    static const gchar *hex2digit = "0123456789abcdef";
    guchar md5sum[16];
    gchar buffer[37], *p;
    gsize i;

    gwy_md5_get_digest(uri, -1, md5sum);
    p = buffer;
    for (i = 0; i < 16; i++) {
        *p++ = hex2digit[(guint)md5sum[i] >> 4];
        *p++ = hex2digit[(guint)md5sum[i] & 0x0f];
    }
    *p++ = '.';
    *p++ = 'p';
    *p++ = 'n';
    *p++ = 'g';
    *p = '\0';

    return g_build_filename(gwy_recent_file_thumbnail_dir(), "normal", buffer,
                            NULL);
}