rust/hg-core/src/filepatterns.rs
changeset 42863 62eabdf91f85
parent 42841 ce6797ef6eab
child 42864 72890d8f9860
equal deleted inserted replaced
42862:96ddf83fc267 42863:62eabdf91f85
    58         input = rest;
    58         input = rest;
    59 
    59 
    60         match c {
    60         match c {
    61             b'*' => {
    61             b'*' => {
    62                 for (source, repl) in GLOB_REPLACEMENTS {
    62                 for (source, repl) in GLOB_REPLACEMENTS {
    63                     if input.starts_with(source) {
    63                     if let Some(rest) = input.drop_prefix(source) {
    64                         input = &input[source.len()..];
    64                         input = rest;
    65                         res.extend(*repl);
    65                         res.extend(*repl);
    66                         break;
    66                         break;
    67                     }
    67                     }
    68                 }
    68                 }
    69             }
    69             }
   267 
   267 
   268         if line.is_empty() {
   268         if line.is_empty() {
   269             continue;
   269             continue;
   270         }
   270         }
   271 
   271 
   272         if line.starts_with(b"syntax:") {
   272         if let Some(syntax) = line.drop_prefix(b"syntax:") {
   273             let syntax = line[b"syntax:".len()..].trim();
   273             let syntax = syntax.trim();
   274 
   274 
   275             if let Some(rel_syntax) = SYNTAXES.get(syntax) {
   275             if let Some(rel_syntax) = SYNTAXES.get(syntax) {
   276                 current_syntax = rel_syntax;
   276                 current_syntax = rel_syntax;
   277             } else if warn {
   277             } else if warn {
   278                 warnings.push((file_path.to_owned(), syntax.to_owned()));
   278                 warnings.push((file_path.to_owned(), syntax.to_owned()));
   281         }
   281         }
   282 
   282 
   283         let mut line_syntax: &[u8] = &current_syntax;
   283         let mut line_syntax: &[u8] = &current_syntax;
   284 
   284 
   285         for (s, rels) in SYNTAXES.iter() {
   285         for (s, rels) in SYNTAXES.iter() {
   286             if line.starts_with(rels) {
   286             if let Some(rest) = line.drop_prefix(rels) {
   287                 line_syntax = rels;
   287                 line_syntax = rels;
   288                 line = &line[rels.len()..];
   288                 line = rest;
   289                 break;
   289                 break;
   290             } else if line.starts_with(&[s, b":".as_ref()].concat()) {
   290             }
       
   291             if let Some(rest) = line.drop_prefix(&[s, &b":"[..]].concat()) {
   291                 line_syntax = rels;
   292                 line_syntax = rels;
   292                 line = &line[s.len() + 1..];
   293                 line = rest;
   293                 break;
   294                 break;
   294             }
   295             }
   295         }
   296         }
   296 
   297 
   297         inputs.push((
   298         inputs.push((