| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 
							- 'use strict';
 
- var path = require('path');
 
- var isNegated = require('is-negated-glob');
 
- var isAbsolute = require('is-absolute');
 
- module.exports = function(glob, options) {
 
-   // default options
 
-   var opts = options || {};
 
-   // ensure cwd is absolute
 
-   var cwd = path.resolve(opts.cwd ? opts.cwd : process.cwd());
 
-   cwd = unixify(cwd);
 
-   var rootDir = opts.root;
 
-   // if `options.root` is defined, ensure it's absolute
 
-   if (rootDir) {
 
-     rootDir = unixify(rootDir);
 
-     if (process.platform === 'win32' || !isAbsolute(rootDir)) {
 
-       rootDir = unixify(path.resolve(rootDir));
 
-     }
 
-   }
 
-   // trim starting ./ from glob patterns
 
-   if (glob.slice(0, 2) === './') {
 
-     glob = glob.slice(2);
 
-   }
 
-   // when the glob pattern is only a . use an empty string
 
-   if (glob.length === 1 && glob === '.') {
 
-     glob = '';
 
-   }
 
-   // store last character before glob is modified
 
-   var suffix = glob.slice(-1);
 
-   // check to see if glob is negated (and not a leading negated-extglob)
 
-   var ing = isNegated(glob);
 
-   glob = ing.pattern;
 
-   // make glob absolute
 
-   if (rootDir && glob.charAt(0) === '/') {
 
-     glob = join(rootDir, glob);
 
-   } else if (!isAbsolute(glob) || glob.slice(0, 1) === '\\') {
 
-     glob = join(cwd, glob);
 
-   }
 
-   // if glob had a trailing `/`, re-add it now in case it was removed
 
-   if (suffix === '/' && glob.slice(-1) !== '/') {
 
-     glob += '/';
 
-   }
 
-   // re-add leading `!` if it was removed
 
-   return ing.negated ? '!' + glob : glob;
 
- };
 
- function unixify(filepath) {
 
-   return filepath.replace(/\\/g, '/');
 
- }
 
- function join(dir, glob) {
 
-   if (dir.charAt(dir.length - 1) === '/') {
 
-     dir = dir.slice(0, -1);
 
-   }
 
-   if (glob.charAt(0) === '/') {
 
-     glob = glob.slice(1);
 
-   }
 
-   if (!glob) return dir;
 
-   return dir + '/' + glob;
 
- }
 
 
  |