Subversion Repositories Kolibri OS

Rev

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

Rev 1906 Rev 3065
Line 96... Line 96...
96
{
96
{
97
  register int f;
97
  register int f;
98
  int flags, oflags;
98
  int flags, oflags;
99
  int e = 0;
99
  int e = 0;
Line 100... Line -...
100
 
-
 
101
  __sfp_lock_acquire ();
-
 
102
 
100
 
Line 103... Line 101...
103
  CHECK_INIT (ptr, fp);
101
  CHECK_INIT (ptr, fp);
Line 104... Line 102...
104
 
102
 
105
  _flockfile (fp);
103
  _flockfile (fp);
106
 
104
 
107
  if ((flags = __sflags (ptr, mode, &oflags)) == 0)
105
  if ((flags = __sflags (ptr, mode, &oflags)) == 0)
108
    {
-
 
109
      _funlockfile (fp);
106
    {
110
      _fclose_r (ptr, fp);
107
      _funlockfile (fp);
Line 111... Line 108...
111
      __sfp_lock_release ();
108
      _fclose_r (ptr, fp);
112
      return NULL;
109
      return NULL;
Line 206... Line 203...
206
  fp->_flags2 = 0;
203
  fp->_flags2 = 0;
207
  memset (&fp->_mbstate, 0, sizeof (_mbstate_t));
204
  memset (&fp->_mbstate, 0, sizeof (_mbstate_t));
Line 208... Line 205...
208
 
205
 
209
  if (f < 0)
206
  if (f < 0)
-
 
207
    {				/* did not get it after all */
210
    {				/* did not get it after all */
208
      __sfp_lock_acquire ();
211
      fp->_flags = 0;		/* set it free */
209
      fp->_flags = 0;		/* set it free */
212
      ptr->_errno = e;		/* restore in case _close clobbered */
210
      ptr->_errno = e;		/* restore in case _close clobbered */
213
      _funlockfile (fp);
211
      _funlockfile (fp);
214
#ifndef __SINGLE_THREAD__
212
#ifndef __SINGLE_THREAD__
Line 230... Line 228...
230
  if (__stextmode (fp->_file))
228
  if (__stextmode (fp->_file))
231
    fp->_flags |= __SCLE;
229
    fp->_flags |= __SCLE;
232
#endif
230
#endif
Line 233... Line 231...
233
 
231
 
234
  _funlockfile (fp);
-
 
235
  __sfp_lock_release ();
232
  _funlockfile (fp);
236
  return fp;
233
  return fp;
Line 237... Line 234...
237
}
234
}