aboutsummaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2021-05-13 16:09:07 +0200
committerGitHub <noreply@github.com>2021-05-13 16:09:07 +0200
commitb93e51cf88d23e57b844be193829caa68dadbcf1 (patch)
tree999b6ae4488b32477462824bfe5c234446d03109 /src/common
parentMerge pull request #465 from a-kenji/set-data-dir (diff)
downloadsl0ppij-b93e51cf88d23e57b844be193829caa68dadbcf1.tar.gz
sl0ppij-b93e51cf88d23e57b844be193829caa68dadbcf1.tar.xz
sl0ppij-b93e51cf88d23e57b844be193829caa68dadbcf1.zip
fix(compatibility): implement device reports (#500)
* fix(compatibility): implement device reports * docs(changelog): update change
Diffstat (limited to 'src/common')
-rw-r--r--src/common/utils/shared.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/common/utils/shared.rs b/src/common/utils/shared.rs
index ace5674b..26a2f90a 100644
--- a/src/common/utils/shared.rs
+++ b/src/common/utils/shared.rs
@@ -85,3 +85,24 @@ pub fn _detect_theme(bg: PaletteColor) -> Theme {
_ => Theme::Dark,
}
}
+
+// (this was shamelessly copied from alacritty)
+//
+// This returns the current terminal version as a unique number based on the
+// semver version. The different versions are padded to ensure that a higher semver version will
+// always report a higher version number.
+pub fn version_number(mut version: &str) -> usize {
+ if let Some(separator) = version.rfind('-') {
+ version = &version[..separator];
+ }
+
+ let mut version_number = 0;
+
+ let semver_versions = version.split('.');
+ for (i, semver_version) in semver_versions.rev().enumerate() {
+ let semver_number = semver_version.parse::<usize>().unwrap_or(0);
+ version_number += usize::pow(100, i as u32) * semver_number;
+ }
+
+ version_number
+}