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

Reply via email to