Raster, Wouldn't be nice to expose this in eina as this is a common problem? We use mktemps() when possible, or use some other technique like ou did if not?
Also would be nice to use $XDG_RUNTIME_DIR if possible. This envvar is set with an user-scope, then it's safe by nature to store stuff in there. Currently just systemd implements, but it should be trivial to add this to other systems. http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html What systemd does is just mkdir /run/user/$UID as 0700 in a tmpfs, then export XDG_RUNTIME_DIR=/run/user/$UID. People could easily do an work around for /home/$USER/.tmp or use systemd's approach. On Mon, Dec 10, 2012 at 5:13 AM, Enlightenment SVN <no-re...@enlightenment.org> wrote: > Log: > actually us fdopen and hex, and random numbers for tmp shot file. > > > > Author: raster > Date: 2012-12-09 23:13:55 -0800 (Sun, 09 Dec 2012) > New Revision: 80571 > Trac: http://trac.enlightenment.org/e/changeset/80571 > > Modified: > trunk/e/src/modules/shot/e_mod_main.c > > Modified: trunk/e/src/modules/shot/e_mod_main.c > =================================================================== > --- trunk/e/src/modules/shot/e_mod_main.c 2012-12-10 07:02:32 UTC (rev > 80570) > +++ trunk/e/src/modules/shot/e_mod_main.c 2012-12-10 07:13:55 UTC (rev > 80571) > @@ -431,11 +431,22 @@ > Evas_Coord mw, mh; > char buf[PATH_MAX]; > FILE *f; > + int i, fd = -1; > > - if (quality == 100) snprintf(buf, sizeof(buf), "/tmp/e-shot-XXXXXX.png"); > - else snprintf(buf, sizeof(buf), "/tmp/e-shot-XXXXXX.jpg"); > - if (!mkstemps(buf, 4)) > + srand(time(NULL)); > + for (i = 0; i < 10240; i++) > { > + int v = rand(); > + > + if (quality == 100) > + snprintf(buf, sizeof(buf), "/tmp/e-shot-%x.png", v); > + else > + snprintf(buf, sizeof(buf), "/tmp/e-shot-%x.jpg", v); > + fd = open(buf, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); > + if (fd >= 0) break; > + } > + if (fd < 0) > + { > e_util_dialog_show(_("Error - Can't create file"), > _("Cannot create temporary file '%s': %s"), > buf, strerror(errno)); > @@ -452,7 +463,7 @@ > e_object_del(E_OBJECT(win)); > win = NULL; > } > - f = fopen(buf, "rb"); > + f = fdopen(fd, "rb"); > if (!f) > { > e_util_dialog_show(_("Error - Can't open file"), > > > ------------------------------------------------------------------------------ > LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial > Remotely access PCs and mobile devices and provide instant support > Improve your efficiency, and focus on delivering more value-add services > Discover what IT Professionals Know. Rescue delivers > http://p.sf.net/sfu/logmein_12329d2d > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -------------------------------------- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel