Changeset 506 for trunk/src


Ignore:
Timestamp:
Jun 1, 2016, 8:52:37 PM (8 years ago)
Author:
katerina
Message:

Fix for ticket #401 (directory creation w/inotify).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_fInotify.c

    r496 r506  
    633633              retD = sh_files_search_dir(path, &classD, &check_flagsD,
    634634                                         &reportedD, &rdepthD);
     635
    635636              if (retD != 0)
    636637                {
    637                   if (ret == 0)
     638                  if (ret == 0) /* because checked as file below */
    638639                    {
    639640                      class      = classD;
     
    641642                    }
    642643                }
     644              rdepthD -= 1; if (rdepthD < -1) rdepthD = -1;
    643645            }
    644646         
     
    650652            {
    651653              SH_INOTIFY_IFUSED( sh.flag.inotify |= SH_INOTIFY_INSCAN;   );
     654              /* Here we use classD because we check as directory now */
    652655              sh_files_checkdir (classD, check_flagsD, rdepthD,
    653656                                 path, (event->len > 0) ? event->name : NULL);
     
    657660              sh_files_reset ();
    658661            }
    659          
    660662        }
    661663     
     
    665667      if ((ret != 0) || (event->mask & IN_ISDIR))
    666668        {
     669          int inotify_type = SH_INOTIFY_FILE;
     670         
     671          if ((event->mask & IN_ISDIR) && (rdepthD >= 0))
     672            inotify_type = SH_INOTIFY_DIR;
     673
    667674          sh_inotify_add_watch(path, &sh_file_watches, &ret,
    668675                               class, check_flags,
    669                                (event->mask & IN_ISDIR)?SH_INOTIFY_DIR:SH_INOTIFY_FILE,
     676                               inotify_type,
    670677                               rdepthD);
    671678        }
Note: See TracChangeset for help on using the changeset viewer.