Hello community,

here is the log from the commit of package syncthing for openSUSE:Factory 
checked in at 2015-09-08 17:44:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/syncthing (Old)
 and      /work/SRC/openSUSE:Factory/.syncthing.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "syncthing"

Changes:
--------
--- /work/SRC/openSUSE:Factory/syncthing/syncthing.changes      2015-08-31 
22:59:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.syncthing.new/syncthing.changes 2015-09-08 
17:58:20.000000000 +0200
@@ -1,0 +2,8 @@
+Sun Sep  6 10:32:23 UTC 2015 - sor.ale...@meowr.ru
+
+- Update to 0.11.24:
+  * Correctly handle (?i) in ignores.
+  * Adjust defaults for number of hashers based on OS.
+  * Allow fractional free space percentages.
+
+-------------------------------------------------------------------

Old:
----
  syncthing-0.11.23.tar.gz

New:
----
  syncthing-0.11.24.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ syncthing.spec ++++++
--- /var/tmp/diff_new_pack.e7ojcY/_old  2015-09-08 17:58:28.000000000 +0200
+++ /var/tmp/diff_new_pack.e7ojcY/_new  2015-09-08 17:58:28.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           syncthing
-Version:        0.11.23
+Version:        0.11.24
 Release:        0
 Summary:        FOSS Continuous File Synchronization
 License:        MPL-2.0

++++++ syncthing-0.11.23.tar.gz -> syncthing-0.11.24.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/syncthing-0.11.23/gui/syncthing/folder/editFolderModalView.html 
new/syncthing-0.11.24/gui/syncthing/folder/editFolderModalView.html
--- old/syncthing-0.11.23/gui/syncthing/folder/editFolderModalView.html 
2015-08-30 13:37:18.000000000 +0200
+++ new/syncthing-0.11.24/gui/syncthing/folder/editFolderModalView.html 
2015-09-06 08:47:52.000000000 +0200
@@ -40,8 +40,8 @@
                 </p>
               </div>
               <div class="form-group" ng-class="{'has-error': 
folderEditor.minDiskFreePct.$invalid && folderEditor.minDiskFreePct.$dirty}">
-                <label for="minDiskFreePct"><span translate>Minimum Free Disk 
Space</span> (0-100%)</label>
-                <input name="minDiskFreePct" id="minDiskFreePct" 
class="form-control" type="number" ng-model="currentFolder.minDiskFreePct" 
required min="0" max="100"></input>
+                <label for="minDiskFreePct"><span translate>Minimum Free Disk 
Space</span> (0.0 - 100.0%)</label>
+                <input name="minDiskFreePct" id="minDiskFreePct" 
class="form-control" type="number" ng-model="currentFolder.minDiskFreePct" 
required min="0.0" max="100.0"></input>
                 <p class="help-block">
                   <span translate ng-if="!folderEditor.minDiskFreePct.$valid 
&& folderEditor.minDiskFreePct.$dirty">The minimum free disk space percentage 
must be a non-negative number between 0 and 100 (inclusive).</span>
                 </p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/lib/auto/gui.files.go 
new/syncthing-0.11.24/lib/auto/gui.files.go
--- old/syncthing-0.11.23/lib/auto/gui.files.go 2015-08-30 13:37:18.000000000 
+0200
+++ new/syncthing-0.11.24/lib/auto/gui.files.go 2015-09-06 08:47:52.000000000 
+0200
@@ -5,7 +5,7 @@
 )
 
 const (
-       AssetsBuildDate = "Sun, 30 Aug 2015 11:36:51 GMT"
+       AssetsBuildDate = "Sun, 06 Sep 2015 06:47:10 GMT"
 )
 
 func Assets() map[string][]byte {
@@ -89,7 +89,7 @@
        assets["syncthing/device/idqrModalView.html"], _ = 
base64.StdEncoding.DecodeString("H4sIAAAJbogA/zSQPXLCMBCFe59iZxug0PgCttPQ0OQOQlqbnegnSAsJo+jukQ00Gj3pvW/e7uCj1Q7Yjsj2mhCyaLnlpsIcEdjEMOI1mWgJQVgcjVjK7kh3NgQnS0F4ZqOFY9jBH0jSITstVCsoKMVuxk/taS8Xzs/c/nCoFcHptDTcgzKCcTG/7lMHMFi+tzedW5Mfcg7WQ2UPQr+ifAwxf+tWYJOmlaCEUyn+cTrWOvQtvVHYLxAWxfOI6xe+kc+EOrtovqCZlFxu/hw0O1z9OZl16P5jxY9vLPZTN/TbvqbuHwAA//8BAAD//2Nevvg4AQAA")
        assets["syncthing/device/module.js"], _ = 
base64.StdEncoding.DecodeString("H4sIAAAJbogA/0rMSy/NSSzSy81PKc1J1VAvrsxLLsnIzEvXS0kty0xOVddRiI7VtOYCAAAA//8BAAD//23b1z0oAAAA")
        assets["syncthing/folder/editFolderModalDirective.js"], _ = 
base64.StdEncoding.DecodeString("H4sIAAAJbogA/1yOMQ+CMBCFd35Ft4OElF0mFzdH3Rt6wCVHa46rxhj+uxUSor7xfe/uPReGxE7sFH1iLGF+hk5HCoPtI3sUqAqTZT0Jdkr3HEFPelrhOXrHUJs+5SOKwZSVea35jwQ1SfgyNnNWoU4PBo5Q/yDF6cZO8SKc6T6k2YY0f7VXwocddWLYnyxtsVRt8QYAAP//AQAA//+34Oi50wAAAA==")
-       assets["syncthing/folder/editFolderModalView.html"], _ = 
base64.StdEncoding.DecodeString("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")
+       assets["syncthing/folder/editFolderModalView.html"], _ = 
base64.StdEncoding.DecodeString("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")
        assets["syncthing/folder/editIgnoresModalDirective.js"], _ = 
base64.StdEncoding.DecodeString("H4sIAAAJbogA/1yOsc7CMAyE9z5FtrRSle5/p39kYIQ9atzWkusgxwEh1HcnUKkCbrzz+T7PUyYvbokhE9Q23XnQGXlyY6QAYpvKFLmAAoPitZxAQD1MHAXSMQZPtjVjLi2MbOrGPN6FlwQ0C38Ym5lUcNA/Y/9t+xUpLBfyCiehku4k3UbS/e6eEW5u1oXs/mXtq7XpqycAAAD//wEAAP//eXHskdUAAAA=")
        assets["syncthing/folder/editIgnoresModalView.html"], _ = 
base64.StdEncoding.DecodeString("H4sIAAAJbogA/5xVz27bPgy+9yn48+GHdGhiFOguneNL0QE9DNjQBxgYi7aFypIg0WmzIO8+2nFcB02XbofApkzx+/jxTzKl16DVMiGl+aGyLlBMoDAY4zJpnEIDJSpKgHGlraKXZTK/TvILgP7m1HGuNBpXwd4wVe91yq9wlsny8P2UR02CGUYHcalvjj1Ys+lYBbTRIFO+5w7fkZmCjVla34zxUwF4H2zl1GYK5SdR74VpAL2P7YfYV+CsWPLBaEuLLPWT20wvjIHwgFG60PQZB2cSCO5Zzq4/J3mWHjzzi0maIZ2a/hAlNmiMXIoe7YTej1YXT1C1WhGwg9h67wKTGqlmaXcjh1mGUAcql0nN7G/TVLkiLuLGFlxrWy0scdpGCjHtc+2Oam5MV/ZQES+TnyuD9mkqeNkaAxKmbaSWyNrZLMX88vZYDmUOKSgpq0T+JVJIU4llMYgcMKQ2XukucZ4VTlH+X5b2T6kg53Ku3ijwYNfCWsDBlcA1QaXXZEEEl37ujmd6QQvhCdYx0EthWkWXgywSVp0G/nQW+FE0MgSG1mTgWRtVYFAwa5CLmqKcdMICgtKBCnZhI01jNh9APg/9rTWs30Vuuq9eqL0i967xPHaansW+c01X7yt4rkVmaRkFyL3wUVqFuypgPxYnwcQyH5zK0jk+XgETFy+9NzdU8tuRuO/qbqtD4+8T226LNgTh/dUZWSwLGY96t9tu4yYyNb35SB4Dily73SLyfuJf1XhlKkRWLbN0Fm88LZO9Ma7MFVuQ39wH3aBI373HJgFbzQsjwyqjjGsaFu3sMgGFjLI5Y6PH3I+Hoc/vsExQtvFcylw8dRukT/F/u4r+y5v2FJTBYaL+nuxfpqKoROmpMZV/YMy6kb+VPzO+My6epTwpxfg6vAyP3wAAAP//AQAA//8ktcnt0QYAAA==")
        assets["syncthing/folder/module.js"], _ = 
base64.StdEncoding.DecodeString("H4sIAAAJbogA/0rMSy/NSSzSy81PKc1J1VAvrsxLLsnIzEvXS8vPSUktUtdRiI7VtOYCAAAA//8BAAD//4Nu4g4oAAAA")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/lib/config/config.go 
new/syncthing-0.11.24/lib/config/config.go
--- old/syncthing-0.11.23/lib/config/config.go  2015-08-30 13:37:18.000000000 
+0200
+++ new/syncthing-0.11.24/lib/config/config.go  2015-09-06 08:47:52.000000000 
+0200
@@ -74,7 +74,7 @@
        RescanIntervalS int                         `xml:"rescanIntervalS,attr" 
json:"rescanIntervalS"`
        IgnorePerms     bool                        `xml:"ignorePerms,attr" 
json:"ignorePerms"`
        AutoNormalize   bool                        `xml:"autoNormalize,attr" 
json:"autoNormalize"`
-       MinDiskFreePct  int                         `xml:"minDiskFreePct" 
json:"minDiskFreePct"`
+       MinDiskFreePct  float64                     `xml:"minDiskFreePct" 
json:"minDiskFreePct"`
        Versioning      VersioningConfiguration     `xml:"versioning" 
json:"versioning"`
        Copiers         int                         `xml:"copiers" 
json:"copiers"` // This defines how many files are handled concurrently.
        Pullers         int                         `xml:"pullers" 
json:"pullers"` // Defines how many blocks are fetched at the same time, 
possibly between separate copier routines.
@@ -238,7 +238,7 @@
        DatabaseBlockCacheMiB   int      `xml:"databaseBlockCacheMiB" 
json:"databaseBlockCacheMiB" default:"0"`
        PingTimeoutS            int      `xml:"pingTimeoutS" 
json:"pingTimeoutS" default:"30"`
        PingIdleTimeS           int      `xml:"pingIdleTimeS" 
json:"pingIdleTimeS" default:"60"`
-       MinHomeDiskFreePct      int      `xml:"minHomeDiskFreePct" 
json:"minHomeDiskFreePct" default:"1"`
+       MinHomeDiskFreePct      float64  `xml:"minHomeDiskFreePct" 
json:"minHomeDiskFreePct" default:"1"`
 }
 
 func (orig OptionsConfiguration) Copy() OptionsConfiguration {
@@ -534,6 +534,13 @@
                                }
                                f.SetInt(i)
 
+                       case float64:
+                               i, err := strconv.ParseFloat(v, 64)
+                               if err != nil {
+                                       return err
+                               }
+                               f.SetFloat(i)
+
                        case bool:
                                f.SetBool(v == "true")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/lib/config/config_test.go 
new/syncthing-0.11.24/lib/config/config_test.go
--- old/syncthing-0.11.23/lib/config/config_test.go     2015-08-30 
13:37:18.000000000 +0200
+++ new/syncthing-0.11.24/lib/config/config_test.go     2015-09-06 
08:47:52.000000000 +0200
@@ -166,7 +166,7 @@
                DatabaseBlockCacheMiB:   42,
                PingTimeoutS:            60,
                PingIdleTimeS:           120,
-               MinHomeDiskFreePct:      5,
+               MinHomeDiskFreePct:      5.2,
        }
 
        cfg, err := Load("testdata/overridenvalues.xml", device1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/syncthing-0.11.23/lib/config/testdata/overridenvalues.xml 
new/syncthing-0.11.24/lib/config/testdata/overridenvalues.xml
--- old/syncthing-0.11.23/lib/config/testdata/overridenvalues.xml       
2015-08-30 13:37:18.000000000 +0200
+++ new/syncthing-0.11.24/lib/config/testdata/overridenvalues.xml       
2015-09-06 08:47:52.000000000 +0200
@@ -26,6 +26,6 @@
         <databaseBlockCacheMiB>42</databaseBlockCacheMiB>
         <pingTimeoutS>60</pingTimeoutS>
         <pingIdleTimeS>120</pingIdleTimeS>
-        <minHomeDiskFreePct>5</minHomeDiskFreePct>
+        <minHomeDiskFreePct>5.2</minHomeDiskFreePct>
     </options>
 </configuration>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/lib/fnmatch/fnmatch.go 
new/syncthing-0.11.24/lib/fnmatch/fnmatch.go
--- old/syncthing-0.11.23/lib/fnmatch/fnmatch.go        2015-08-30 
13:37:18.000000000 +0200
+++ new/syncthing-0.11.24/lib/fnmatch/fnmatch.go        2015-09-06 
08:47:52.000000000 +0200
@@ -38,14 +38,6 @@
                }
        }
 
-       // Support case insensitive ignores. We do the loop because we may in 
some
-       // circumstances end up with multiple insensitivity prefixes
-       // ("(?i)(?i)foo"), which should be accepted.
-       for ignore := strings.TrimPrefix(pattern, "(?i)"); ignore != pattern; 
ignore = strings.TrimPrefix(pattern, "(?i)") {
-               flags |= CaseFold
-               pattern = ignore
-       }
-
        if flags&NoEscape != 0 {
                pattern = strings.Replace(pattern, "\\", "\\\\", -1)
        } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/lib/fnmatch/fnmatch_test.go 
new/syncthing-0.11.24/lib/fnmatch/fnmatch_test.go
--- old/syncthing-0.11.23/lib/fnmatch/fnmatch_test.go   2015-08-30 
13:37:18.000000000 +0200
+++ new/syncthing-0.11.24/lib/fnmatch/fnmatch_test.go   2015-09-06 
08:47:52.000000000 +0200
@@ -53,10 +53,6 @@
        {"**/foo.txt", "bar/baz/foo.txt", PathName, true},
 
        {"foo.txt", "foo.TXT", CaseFold, true},
-       {"(?i)foo.txt", "foo.TXT", 0, true},
-       {"(?i)(?i)foo.txt", "foo.TXT", 0, true}, // repeated prefix should be 
fine
-       {"(?i)**foo.txt", "/dev/tmp/foo.TXT", 0, true},
-       {"(?i)!**foo.txt", "/dev/tmp/foo.TXT", 0, false},
 
        // These characters are literals in glob, but not in regexp.
        {"hey$hello", "hey$hello", 0, true},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/lib/ignore/ignore.go 
new/syncthing-0.11.24/lib/ignore/ignore.go
--- old/syncthing-0.11.23/lib/ignore/ignore.go  2015-08-30 13:37:18.000000000 
+0200
+++ new/syncthing-0.11.24/lib/ignore/ignore.go  2015-09-06 08:47:52.000000000 
+0200
@@ -206,22 +206,28 @@
                        include = false
                }
 
+               flags := fnmatch.PathName
+               if strings.HasPrefix(line, "(?i)") {
+                       line = line[4:]
+                       flags |= fnmatch.CaseFold
+               }
+
                if strings.HasPrefix(line, "/") {
                        // Pattern is rooted in the current dir only
-                       exp, err := fnmatch.Convert(line[1:], fnmatch.PathName)
+                       exp, err := fnmatch.Convert(line[1:], flags)
                        if err != nil {
                                return fmt.Errorf("Invalid pattern %q in ignore 
file", line)
                        }
                        patterns = append(patterns, Pattern{exp, include})
                } else if strings.HasPrefix(line, "**/") {
                        // Add the pattern as is, and without **/ so it matches 
in current dir
-                       exp, err := fnmatch.Convert(line, fnmatch.PathName)
+                       exp, err := fnmatch.Convert(line, flags)
                        if err != nil {
                                return fmt.Errorf("Invalid pattern %q in ignore 
file", line)
                        }
                        patterns = append(patterns, Pattern{exp, include})
 
-                       exp, err = fnmatch.Convert(line[3:], fnmatch.PathName)
+                       exp, err = fnmatch.Convert(line[3:], flags)
                        if err != nil {
                                return fmt.Errorf("Invalid pattern %q in ignore 
file", line)
                        }
@@ -236,13 +242,13 @@
                } else {
                        // Path name or pattern, add it so it matches files 
both in
                        // current directory and subdirs.
-                       exp, err := fnmatch.Convert(line, fnmatch.PathName)
+                       exp, err := fnmatch.Convert(line, flags)
                        if err != nil {
                                return fmt.Errorf("Invalid pattern %q in ignore 
file", line)
                        }
                        patterns = append(patterns, Pattern{exp, include})
 
-                       exp, err = fnmatch.Convert("**/"+line, fnmatch.PathName)
+                       exp, err = fnmatch.Convert("**/"+line, flags)
                        if err != nil {
                                return fmt.Errorf("Invalid pattern %q in ignore 
file", line)
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/lib/model/model.go 
new/syncthing-0.11.24/lib/model/model.go
--- old/syncthing-0.11.23/lib/model/model.go    2015-08-30 13:37:18.000000000 
+0200
+++ new/syncthing-0.11.24/lib/model/model.go    2015-09-06 08:47:52.000000000 
+0200
@@ -1424,8 +1424,16 @@
                return folderCfg.Hashers
        }
 
+       if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {
+               // Interactive operating systems; don't load the system too 
heavily by
+               // default.
+               return 1
+       }
+
+       // For other operating systems and architectures, lets try to get some
+       // work done... Divide the available CPU cores among the configured
+       // folders.
        if perFolder := runtime.GOMAXPROCS(-1) / numFolders; perFolder > 0 {
-               // We have CPUs to spare, divide them per folder.
                return perFolder
        }
 
@@ -1662,7 +1670,7 @@
 // CheckFolderHealth checks the folder for common errors and returns the
 // current folder error, or nil if the folder is healthy.
 func (m *Model) CheckFolderHealth(id string) error {
-       if minFree := float64(m.cfg.Options().MinHomeDiskFreePct); minFree > 0 {
+       if minFree := m.cfg.Options().MinHomeDiskFreePct; minFree > 0 {
                if free, err := osutil.DiskFreePercentage(m.cfg.ConfigPath()); 
err == nil && free < minFree {
                        return errors.New("home disk is out of space")
                }
@@ -1683,7 +1691,7 @@
                        err = errors.New("folder path missing")
                } else if !folder.HasMarker() {
                        err = errors.New("folder marker missing")
-               } else if free, errDfp := 
osutil.DiskFreePercentage(folder.Path()); errDfp == nil && free < 
float64(folder.MinDiskFreePct) {
+               } else if free, errDfp := 
osutil.DiskFreePercentage(folder.Path()); errDfp == nil && free < 
folder.MinDiskFreePct {
                        err = errors.New("out of disk space")
                }
        } else if os.IsNotExist(err) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/lib/model/rwfolder.go 
new/syncthing-0.11.24/lib/model/rwfolder.go
--- old/syncthing-0.11.23/lib/model/rwfolder.go 2015-08-30 13:37:18.000000000 
+0200
+++ new/syncthing-0.11.24/lib/model/rwfolder.go 2015-09-06 08:47:52.000000000 
+0200
@@ -508,14 +508,13 @@
                return true
        })
 
-       // Check if we are able to store all files on disk
-       if pullFileSize > 0 {
-               folder, ok := p.model.cfg.Folders()[p.folder]
-               if ok {
-                       if free, err := osutil.DiskFreeBytes(folder.Path()); 
err == nil && free < pullFileSize {
-                               l.Infof("Puller (folder %q): insufficient disk 
space available to pull %d files (%.2fMB)", p.folder, changed, 
float64(pullFileSize)/1024/1024)
-                               return 0
-                       }
+       // Check if we are able to store all files on disk. Only perform this
+       // check if there is a minimum free space threshold set on the folder.
+       folderCfg := p.model.cfg.Folders()[p.folder]
+       if folderCfg.MinDiskFreePct > 0 || pullFileSize > 0 {
+               if free, err := osutil.DiskFreeBytes(folderCfg.Path()); err == 
nil && free < pullFileSize {
+                       l.Warnf(`Folder "%s": insufficient disk space available 
to pull %d files (%.2f MiB)`, p.folder, changed, 
float64(pullFileSize)/1024/1024)
+                       return 0
                }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/syncthing-0.11.23/test/ignore_test.go 
new/syncthing-0.11.24/test/ignore_test.go
--- old/syncthing-0.11.23/test/ignore_test.go   2015-08-30 13:37:18.000000000 
+0200
+++ new/syncthing-0.11.24/test/ignore_test.go   2015-09-06 08:47:52.000000000 
+0200
@@ -31,23 +31,23 @@
 
        // Create eight empty files and directories
 
-       files := []string{"f1", "f2", "f3", "f4", "f11", "f12", "f13", "f14"}
        dirs := []string{"d1", "d2", "d3", "d4", "d11", "d12", "d13", "d14"}
+       files := []string{"f1", "f2", "f3", "f4", "f11", "f12", "f13", "f14", 
"d1/f1.TXT"}
        all := append(files, dirs...)
 
-       for _, file := range files {
-               fd, err := os.Create(filepath.Join("s1", file))
+       for _, dir := range dirs {
+               err := os.Mkdir(filepath.Join("s1", dir), 0755)
                if err != nil {
                        t.Fatal(err)
                }
-               fd.Close()
        }
 
-       for _, dir := range dirs {
-               err := os.Mkdir(filepath.Join("s1", dir), 0755)
+       for _, file := range files {
+               fd, err := os.Create(filepath.Join("s1", file))
                if err != nil {
                        t.Fatal(err)
                }
+               fd.Close()
        }
 
        var syms []string
@@ -81,7 +81,7 @@
        if err != nil {
                t.Fatal(err)
        }
-       _, err = fd.WriteString("f1*\nf2\nd1*\nd2\ns1*\ns2") // [fds][34] only 
non-ignored items
+       _, err = fd.WriteString("f1*\nf2\nd1*\nd2\ns1*\ns2\n(?i)*.txt") // 
[fds][34] only non-ignored items
        if err != nil {
                t.Fatal(err)
        }
@@ -130,7 +130,7 @@
        if err != nil {
                t.Fatal(err)
        }
-       expected = len(all) * 7 / 8 // seven out of eight items of each type 
should remain
+       expected = len(all)*7/8 + 1 // seven out of eight items of each type 
should remain, plus the foo.TXT
        if m.LocalFiles != expected {
                t.Fatalf("Incorrect number of files after second ignore, %d != 
%d", m.LocalFiles, expected)
        }


Reply via email to