@@ -524,81 +524,47 @@ pub(crate) trait RegisterBlockExt: Name {
524524
525525 /// Delete substring from the beginning of register names inside ptag
526526 fn strip_start ( & mut self , prefix : & str ) -> PatchResult {
527- let len = prefix. len ( ) ;
528- let glob = globset:: Glob :: new ( & ( prefix. to_string ( ) + "*" ) ) ?. compile_matcher ( ) ;
527+ let re = regex:: Regex :: new ( & globset:: Glob :: new ( prefix) ?. regex ( ) . replace ( "(?-u)" , "" ) . replace ( "*" , "*?" ) . strip_suffix ( "$" ) . unwrap ( ) ) ?;
529528 for rtag in self . regs_mut ( ) {
530- if glob. is_match ( & rtag. name ) {
531- rtag. name . drain ( ..len) ;
532- }
529+ rtag. name = re. replace ( & rtag. name , "" ) . to_string ( ) ;
533530 if let Some ( dname) = rtag. display_name . as_mut ( ) {
534- if glob. is_match ( dname. as_str ( ) ) {
535- dname. drain ( ..len) ;
536- }
531+ * dname = re. replace ( dname, "" ) . to_string ( ) ;
537532 }
538533 if let Some ( name) = rtag. alternate_register . as_mut ( ) {
539- if glob. is_match ( name. as_str ( ) ) {
540- name. drain ( ..len) ;
541- }
534+ * name = re. replace ( name, "" ) . to_string ( ) ;
542535 }
543536 }
544537 for ctag in self . clstrs_mut ( ) {
545- if glob. is_match ( & ctag. name ) {
546- ctag. name . drain ( ..len) ;
547- }
538+ ctag. name = re. replace ( & ctag. name , "" ) . to_string ( ) ;
548539 if let Some ( dname) = ctag. header_struct_name . as_mut ( ) {
549- if glob. is_match ( dname. as_str ( ) ) {
550- dname. drain ( ..len) ;
551- }
540+ * dname = re. replace ( dname, "" ) . to_string ( ) ;
552541 }
553542 if let Some ( name) = ctag. alternate_cluster . as_mut ( ) {
554- if glob. is_match ( name. as_str ( ) ) {
555- name. drain ( ..len) ;
556- }
543+ * name = re. replace ( name, "" ) . to_string ( ) ;
557544 }
558545 }
559546 Ok ( ( ) )
560547 }
561548
562549 /// Delete substring from the ending of register names inside ptag
563550 fn strip_end ( & mut self , suffix : & str ) -> PatchResult {
564- let len = suffix. len ( ) ;
565- let glob = globset:: Glob :: new ( & ( "*" . to_string ( ) + suffix) )
566- . unwrap ( )
567- . compile_matcher ( ) ;
551+ let re = regex:: Regex :: new ( & globset:: Glob :: new ( suffix) ?. regex ( ) . replace ( "(?-u)^" , "" ) . replace ( "*" , "*?" ) ) ?;
568552 for rtag in self . regs_mut ( ) {
569- if glob. is_match ( & rtag. name ) {
570- let nlen = rtag. name . len ( ) ;
571- rtag. name . truncate ( nlen - len) ;
572- }
553+ rtag. name = re. replace ( & rtag. name , "" ) . to_string ( ) ;
573554 if let Some ( dname) = rtag. display_name . as_mut ( ) {
574- if glob. is_match ( dname. as_str ( ) ) {
575- let nlen = dname. len ( ) ;
576- dname. truncate ( nlen - len) ;
577- }
555+ * dname = re. replace ( dname, "" ) . to_string ( ) ;
578556 }
579557 if let Some ( name) = rtag. alternate_register . as_mut ( ) {
580- if glob. is_match ( name. as_str ( ) ) {
581- let nlen = name. len ( ) ;
582- name. truncate ( nlen - len) ;
583- }
558+ * name = re. replace ( name, "" ) . to_string ( ) ;
584559 }
585560 }
586561 for ctag in self . clstrs_mut ( ) {
587- if glob. is_match ( & ctag. name ) {
588- let nlen = ctag. name . len ( ) ;
589- ctag. name . truncate ( nlen - len) ;
590- }
562+ ctag. name = re. replace ( & ctag. name , "" ) . to_string ( ) ;
591563 if let Some ( dname) = ctag. header_struct_name . as_mut ( ) {
592- if glob. is_match ( dname. as_str ( ) ) {
593- let nlen = dname. len ( ) ;
594- dname. truncate ( nlen - len) ;
595- }
564+ * dname = re. replace ( dname, "" ) . to_string ( ) ;
596565 }
597566 if let Some ( name) = ctag. alternate_cluster . as_mut ( ) {
598- if glob. is_match ( name. as_str ( ) ) {
599- let nlen = name. len ( ) ;
600- name. truncate ( nlen - len) ;
601- }
567+ * name = re. replace ( name, "" ) . to_string ( ) ;
602568 }
603569 }
604570 Ok ( ( ) )
0 commit comments