khelper.c 652 B

1234567891011121314151617181920212223242526272829303132
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <assert.h>
  5. #include <faux/str.h>
  6. #include <faux/conv.h>
  7. #include <klish/khelper.h>
  8. #include <klish/kaction.h>
  9. bool_t attr2ctext(char **dst, const char *field, const char *value, int level)
  10. {
  11. char *tmp = NULL;
  12. char *esc = NULL;
  13. if (!field) // Error
  14. return BOOL_FALSE;
  15. if (faux_str_is_empty(value)) // Not error. Just empty field.
  16. return BOOL_TRUE;
  17. esc = faux_str_c_esc(value);
  18. if (!esc)
  19. return BOOL_FALSE;
  20. tmp = faux_str_sprintf("%*c.%s = \"%s\",\n",
  21. level, ' ', field, esc);
  22. faux_str_free(esc);
  23. faux_str_cat(dst, tmp);
  24. faux_str_free(tmp);
  25. return BOOL_TRUE;
  26. }