_e_info_server_cb_screen_dump_cb(E_Output *eout, tbm_surface_h surface, void *user_data)
{
char *path = (char *)user_data;
+ char fname[PATH_MAX];
+ char dir[PATH_MAX];
+ char type[PATH_MAX];
+ char *slash, *dot;
+ int dlen = 0, flen = 0;
- tdm_helper_dump_buffer(surface, path);
+ slash = strrchr(path, '/');
+ slash += 1;
- free(path);
- tbm_surface_destroy(surface);
+ dlen = strnlen(path, PATH_MAX) - strnlen(slash, PATH_MAX);
+ if (dlen <= 0)
+ {
+ ERR("cannot get path");
+ goto done;
+ }
+ strncpy(dir, path, dlen);
+ dir[dlen] = '\0';
+
+ dot = strrchr(path, '.');
+
+ flen = strnlen(slash, PATH_MAX) - strnlen(dot, PATH_MAX);
+ if (flen <= 0)
+ {
+ ERR("cannot get file name");
+ goto done;
+ }
+ strncpy(fname, slash, flen);
+ fname[flen] = '\0';
+
+ dot += 1;
+ strncpy(type, dot, PATH_MAX);
+ type[4] = '\0';
+
+ tbm_surface_internal_capture_buffer(surface, dir, fname, type);
DBG("_e_info_server_cb_screen_dump_cb done");
+
+done:
+ free(path);
+ tbm_surface_destroy(surface);
}
static Eldbus_Message *