Skip to content

Commit 995c9e0

Browse files
authored
date: Remove eprintln! to avoid 2>/dev/full abort (#11228)
1 parent 005cf50 commit 995c9e0

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

‎src/uu/date/src/date.rs‎

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use jiff::{Timestamp, Zoned};
1515
use std::borrow::Cow;
1616
use std::collections::HashMap;
1717
use std::fs::File;
18-
use std::io::{BufRead, BufReader, BufWriter, Read, Write};
18+
use std::io::{BufRead, BufReader, BufWriter, Read, Write, stderr};
1919
use std::path::PathBuf;
2020
use std::sync::OnceLock;
2121
use uucore::display::Quotable;
@@ -436,7 +436,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
436436
format!("{date_part} 00:00 {offset}")
437437
};
438438
if settings.debug {
439-
eprintln!("date: warning: using midnight as starting time: 00:00:00");
439+
let _ = writeln!(
440+
stderr(),
441+
"date: warning: using midnight as starting time: 00:00:00"
442+
);
440443
}
441444
parse_date(composed, &now, DebugOptions::new(settings.debug, false))
442445
} else if let Some((total_hours, day_delta)) = military_tz_with_offset {
@@ -895,22 +898,25 @@ fn parse_date<S: AsRef<str> + Clone>(
895898
let input_str = s.as_ref();
896899

897900
if dbg_opts.debug {
898-
eprintln!("date: input string: {input_str}");
901+
let _ = writeln!(stderr(), "date: input string: {input_str}");
899902
}
900903

901904
// First, try to parse any timezone abbreviations
902905
if let Some(zoned) = try_parse_with_abbreviation(input_str, now) {
903906
if dbg_opts.debug {
904-
eprintln!(
907+
let mut err = stderr().lock();
908+
let _ = writeln!(
909+
err,
905910
"date: parsed date part: (Y-M-D) {}",
906911
strtime::format("%Y-%m-%d", &zoned).unwrap_or_default()
907912
);
908-
eprintln!(
913+
let _ = writeln!(
914+
err,
909915
"date: parsed time part: {}",
910916
strtime::format("%H:%M:%S", &zoned).unwrap_or_default()
911917
);
912918
let tz_display = zoned.time_zone().iana_name().unwrap_or("system default");
913-
eprintln!("date: input timezone: {tz_display}");
919+
let _ = writeln!(err, "date: input timezone: {tz_display}");
914920
}
915921
return Ok(zoned);
916922
}
@@ -922,17 +928,20 @@ fn parse_date<S: AsRef<str> + Clone>(
922928
let result = date.timestamp().to_zoned(now.time_zone().clone());
923929
if dbg_opts.debug {
924930
// Show final parsed date and time
925-
eprintln!(
931+
let mut err = stderr().lock();
932+
let _ = writeln!(
933+
err,
926934
"date: parsed date part: (Y-M-D) {}",
927935
strtime::format("%Y-%m-%d", &result).unwrap_or_default()
928936
);
929-
eprintln!(
937+
let _ = writeln!(
938+
err,
930939
"date: parsed time part: {}",
931940
strtime::format("%H:%M:%S", &result).unwrap_or_default()
932941
);
933942

934943
// Show timezone information
935-
eprintln!("date: input timezone: system default");
944+
let _ = writeln!(err, "date: input timezone: system default");
936945

937946
// Check if time component was specified, if not warn about midnight usage
938947
// Only warn for date-only inputs (no time specified), but not for epoch formats (@N)
@@ -941,7 +950,10 @@ fn parse_date<S: AsRef<str> + Clone>(
941950
// Input likely didn't specify a time, so midnight was assumed
942951
let time_str = strtime::format("%H:%M:%S", &result).unwrap_or_default();
943952
if time_str == "00:00:00" {
944-
eprintln!("date: warning: using midnight as starting time: 00:00:00");
953+
let _ = writeln!(
954+
err,
955+
"date: warning: using midnight as starting time: 00:00:00"
956+
);
945957
}
946958
}
947959
}

0 commit comments

Comments
 (0)