Subversion Repositories Kolibri OS

Rev

Rev 5191 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5191 Rev 5217
Line 87... Line 87...
87
static const char vartmp[] =
87
static const char vartmp[] =
88
{ DIR_SEPARATOR, 'v', 'a', 'r', DIR_SEPARATOR, 't', 'm', 'p', 0 };
88
{ DIR_SEPARATOR, 'v', 'a', 'r', DIR_SEPARATOR, 't', 'm', 'p', 0 };
Line 89... Line 89...
89
 
89
 
Line 90... Line 90...
90
#endif
90
#endif
Line 91... Line 91...
91
 
91
 
Line 92... Line 92...
92
static char *memoized_tmpdir;
92
//static char *memoized_tmpdir;
Line 103... Line 103...
103
*/
103
*/
Line 104... Line 104...
104
 
104
 
105
char *
105
char *
106
choose_tmpdir (void)
106
choose_tmpdir (void)
107
{
-
 
108
  if (!memoized_tmpdir)
-
 
109
    {
-
 
110
#if !defined(_WIN32) || defined(__CYGWIN__)
-
 
111
      const char *base = 0;
-
 
112
      char *tmpdir;
-
 
113
      unsigned int len;
-
 
114
      
-
 
115
#ifdef VMS
-
 
116
      /* Try VMS standard temp logical.  */
-
 
117
      base = try_dir ("/sys$scratch", base);
-
 
118
#else
-
 
119
      base = try_dir (getenv ("TMPDIR"), base);
-
 
120
      base = try_dir (getenv ("TMP"), base);
-
 
121
      base = try_dir (getenv ("TEMP"), base);
-
 
122
#endif
-
 
123
      
-
 
124
#ifdef P_tmpdir
-
 
125
      /* We really want a directory name here as if concatenated with say \dir
-
 
126
	 we do not end up with a double \\ which defines an UNC path.  */
-
 
127
      if (strcmp (P_tmpdir, "\\") == 0)
-
 
128
	base = try_dir ("\\.", base);
-
 
129
      else
-
 
130
	base = try_dir (P_tmpdir, base);
-
 
131
#endif
-
 
132
 
-
 
133
      /* Try /var/tmp, /usr/tmp, then /tmp.  */
-
 
134
      base = try_dir (vartmp, base);
-
 
135
      base = try_dir (usrtmp, base);
-
 
136
      base = try_dir (tmp, base);
-
 
137
      
-
 
138
      /* If all else fails, use the current directory!  */
-
 
139
      if (base == 0)
-
 
140
	base = ".";
-
 
141
      /* Append DIR_SEPARATOR to the directory we've chosen
-
 
142
	 and return it.  */
-
 
143
      len = strlen (base);
-
 
144
      tmpdir = XNEWVEC (char, len + 2);
-
 
145
      strcpy (tmpdir, base);
-
 
146
      tmpdir[len] = DIR_SEPARATOR;
-
 
147
      tmpdir[len+1] = '\0';
-
 
148
      memoized_tmpdir = tmpdir;
-
 
149
#else /* defined(_WIN32) && !defined(__CYGWIN__) */
-
 
150
      DWORD len;
-
 
151
 
-
 
152
      /* Figure out how much space we need.  */
-
 
153
      len = GetTempPath(0, NULL);
-
 
154
      if (len)
-
 
155
	{
-
 
156
	  memoized_tmpdir = XNEWVEC (char, len);
-
 
157
	  if (!GetTempPath(len, memoized_tmpdir))
-
 
158
	    {
-
 
159
	      XDELETEVEC (memoized_tmpdir);
-
 
160
	      memoized_tmpdir = NULL;
-
 
161
	    }
-
 
162
	}
-
 
163
      if (!memoized_tmpdir)
-
 
164
	/* If all else fails, use the current directory.  */
-
 
165
	memoized_tmpdir = xstrdup (".\\");
-
 
166
#endif /* defined(_WIN32) && !defined(__CYGWIN__) */
-
 
167
    }
-
 
168
 
107
{
169
  return memoized_tmpdir;
108
  return "/tmp0/1/";
Line 170... Line 109...
170
}
109
}
Line 171... Line 110...
171
 
110