Ticket #572: reenable_plaintoxmlformatdoc_whilepreserving_filesync.diff

File reenable_plaintoxmlformatdoc_whilepreserving_filesync.diff, 1.5 KB (added by prahal, 4 years ago)

This use OSYNC_CONVERTER_DECAP to prevent file-sync from using it by default to store its data.

  • formats/xmlformat-doc.c

     
    2626#include <opensync/opensync-xmlformat.h> 
    2727#include <opensync/opensync-format.h> 
    2828 
     29osync_bool convert_func(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, OSyncError **error) 
     30{ 
     31        *free_input = TRUE; 
     32        *output = g_strdup(input); 
     33        *outpsize = inpsize; 
     34        return TRUE; 
     35} 
     36 
    2937static osync_bool detect_plain_as_xmlformat(const char *objtype, const char *data, int size) 
    3038{ 
    3139        osync_assert(objtype); 
     
    129137 
    130138        OSyncObjFormat *fromformat = osync_format_env_find_objformat(env, fromname); 
    131139        OSyncObjFormat *toformat = osync_format_env_find_objformat(env, toname); 
     140        OSyncObjFormat *plain = osync_format_env_find_objformat(env, "plain"); 
    132141 
    133142        if (!fromformat || !toformat) { 
    134143                osync_trace(TRACE_ERROR, "Unable to register converter for %s->%s, format not found\n", fromname, toname); 
     
    155164        osync_converter_unref(conv); 
    156165 
    157166 
     167        /* plain as xmlformat */ 
     168        conv = osync_converter_new(OSYNC_CONVERTER_DECAP, plain, fromformat, convert_func, &error); 
     169        if (!conv) { 
     170                osync_trace(TRACE_ERROR, "Unable to register converter: %s", osync_error_print(&error)); 
     171                osync_error_unref(&error); 
     172                return FALSE; 
     173        } 
     174        osync_format_env_register_converter(env, conv); 
     175        osync_converter_unref(conv); 
     176 
    158177        return TRUE; 
    159178} 
    160179