@@ -266,6 +266,8 @@ pub fn check(path: &Path, bad: &mut bool) {
266266 contains_ignore_directive ( can_contain, & contents, "end-whitespace" ) ;
267267 let mut skip_trailing_newlines =
268268 contains_ignore_directive ( can_contain, & contents, "trailing-newlines" ) ;
269+ let mut skip_leading_newlines =
270+ contains_ignore_directive ( can_contain, & contents, "leading-newlines" ) ;
269271 let mut skip_copyright = contains_ignore_directive ( can_contain, & contents, "copyright" ) ;
270272 let mut leading_new_lines = false ;
271273 let mut trailing_new_lines = 0 ;
@@ -350,7 +352,10 @@ pub fn check(path: &Path, bad: &mut bool) {
350352 }
351353 }
352354 if leading_new_lines {
353- tidy_error ! ( bad, "{}: leading newline" , file. display( ) ) ;
355+ let mut err = |_| {
356+ tidy_error ! ( bad, "{}: leading newline" , file. display( ) ) ;
357+ } ;
358+ suppressible_tidy_err ! ( err, skip_leading_newlines, "mising leading newline" ) ;
354359 }
355360 let mut err = |msg : & str | {
356361 tidy_error ! ( bad, "{}: {}" , file. display( ) , msg) ;
@@ -395,6 +400,9 @@ pub fn check(path: &Path, bad: &mut bool) {
395400 if let Directive :: Ignore ( false ) = skip_trailing_newlines {
396401 tidy_error ! ( bad, "{}: ignoring trailing newlines unnecessarily" , file. display( ) ) ;
397402 }
403+ if let Directive :: Ignore ( false ) = skip_leading_newlines {
404+ tidy_error ! ( bad, "{}: ignoring leading newlines unnecessarily" , file. display( ) ) ;
405+ }
398406 if let Directive :: Ignore ( false ) = skip_copyright {
399407 tidy_error ! ( bad, "{}: ignoring copyright unnecessarily" , file. display( ) ) ;
400408 }
0 commit comments