Skip to content

Commit

Permalink
update upstream version
Browse files Browse the repository at this point in the history
  • Loading branch information
informationsea committed Jun 21, 2024
1 parent dadbe8a commit 97d25b2
Show file tree
Hide file tree
Showing 7 changed files with 104 additions and 50 deletions.
10 changes: 7 additions & 3 deletions libxlsxwriter-sys/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "libxlsxwriter-sys"
version = "1.1.5"
version = "1.1.7"
authors = ["OKAMURA, Yasunobu <okamura@informationsea.info>"]
edition = "2018"
build = "build.rs"
Expand All @@ -13,7 +13,11 @@ keywords = ["excel", "xlsx", "ffi"]
categories = ["external-ffi-bindings"]
license = "MIT"

exclude = ["third_party/libxlsxwriter/docs", "third_party/libxlsxwriter/test", "third_party/zlib/contrib"]
exclude = [
"third_party/libxlsxwriter/docs",
"third_party/libxlsxwriter/test",
"third_party/zlib/contrib",
]

[dependencies]

Expand All @@ -24,4 +28,4 @@ system-zlib = []

[build-dependencies]
cc = "1.0"
bindgen = "0.65"
bindgen = "0.69.4"
2 changes: 1 addition & 1 deletion libxlsxwriter-sys/third_party/libxlsxwriter
Submodule libxlsxwriter updated 1148 files
2 changes: 1 addition & 1 deletion libxlsxwriter-sys/third_party/zlib
Submodule zlib updated 146 files
6 changes: 3 additions & 3 deletions libxlsxwriter/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "xlsxwriter"
version = "0.6.0"
version = "0.6.1"
authors = ["OKAMURA, Yasunobu <okamura@informationsea.info>"]
edition = "2018"
readme = "../README.md"
Expand All @@ -21,8 +21,8 @@ system-zlib = ["libxlsxwriter-sys/system-zlib"]
chrono = ["dep:chrono"]

[dependencies]
libxlsxwriter-sys = {path = "../libxlsxwriter-sys", version = "1.1.5"}
libxlsxwriter-sys = { path = "../libxlsxwriter-sys", version = "1.1.7" }
chrono = { version = "0.4", optional = true }

[dev-dependencies]
chrono = { version = "0.4" }
chrono = { version = "0.4" }
4 changes: 2 additions & 2 deletions libxlsxwriter/src/worksheet/conditional_format/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,13 @@ use std::os::raw::c_char;

fn set_value_helper(
float_value_store: &mut f64,
string_value_store: &mut *mut c_char,
string_value_store: &mut *const c_char,
value: &StringOrFloat,
c_string_helper: &mut CStringHelper,
) -> Result<(), XlsxError> {
match value {
StringOrFloat::Float(f) => *float_value_store = *f,
StringOrFloat::String(s) => *string_value_store = c_string_helper.add(s)? as *mut c_char,
StringOrFloat::String(s) => *string_value_store = c_string_helper.add(s)?,
}
Ok(())
}
Expand Down
7 changes: 2 additions & 5 deletions libxlsxwriter/src/worksheet/filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -259,11 +259,8 @@ impl<'a> Worksheet<'a> {
list: &[&str],
) -> Result<(), XlsxError> {
let mut cstring_helper = crate::CStringHelper::new();
let mut cstr_list: Vec<_> = try_to_vec(
list.iter()
.map(|x| Ok(cstring_helper.add(x)? as *mut std::os::raw::c_char)),
)?;
cstr_list.push(std::ptr::null_mut());
let mut cstr_list: Vec<_> = try_to_vec(list.iter().map(|x| Ok(cstring_helper.add(x)?)))?;
cstr_list.push(std::ptr::null());
unsafe {
let result = libxlsxwriter_sys::worksheet_filter_list(
self.worksheet,
Expand Down
123 changes: 88 additions & 35 deletions libxlsxwriter/src/worksheet/validation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,59 @@ use std::os::raw::c_char;

#[derive(Debug, Clone, PartialEq, PartialOrd)]
pub enum DataValidationType {
Integer{ignore_blank: bool, number_options: DataValidationNumberOptions<i64> },
IntegerFormula{ignore_blank: bool, formula: String },
Decimal{ignore_blank: bool, number_options: DataValidationNumberOptions<f64> },
DecimalFormula{ignore_blank: bool, formula: String },
List{ignore_blank: bool, dropdown: bool, values: Vec<String> },
ListFormula{ignore_blank: bool, formula: String },
Date{ignore_blank: bool, number_options: DataValidationNumberOptions<DateTime> },
DateFormula{ignore_blank: bool, formula: String },
Time{ignore_blank: bool, number_options: DataValidationNumberOptions<DateTime> },
TimeFormula{ignore_blank: bool, formula: String },
Length{ignore_blank: bool, number_options: DataValidationNumberOptions<usize> },
LengthFormula{ignore_blank: bool, formula: String },
CustomFormula{ignore_blank: bool, formula: String },
Integer {
ignore_blank: bool,
number_options: DataValidationNumberOptions<i64>,
},
IntegerFormula {
ignore_blank: bool,
formula: String,
},
Decimal {
ignore_blank: bool,
number_options: DataValidationNumberOptions<f64>,
},
DecimalFormula {
ignore_blank: bool,
formula: String,
},
List {
ignore_blank: bool,
dropdown: bool,
values: Vec<String>,
},
ListFormula {
ignore_blank: bool,
formula: String,
},
Date {
ignore_blank: bool,
number_options: DataValidationNumberOptions<DateTime>,
},
DateFormula {
ignore_blank: bool,
formula: String,
},
Time {
ignore_blank: bool,
number_options: DataValidationNumberOptions<DateTime>,
},
TimeFormula {
ignore_blank: bool,
formula: String,
},
Length {
ignore_blank: bool,
number_options: DataValidationNumberOptions<usize>,
},
LengthFormula {
ignore_blank: bool,
formula: String,
},
CustomFormula {
ignore_blank: bool,
formula: String,
},
Any,
}

Expand Down Expand Up @@ -173,37 +213,50 @@ impl DataValidation {
}
_ => None,
};
let mut _value_list_ptr: Option<Vec<*mut c_char>> = match &self.validation_type {
let mut _value_list_ptr: Option<Vec<*const c_char>> = match &self.validation_type {
DataValidationType::List { values, .. } => Some(try_to_vec(
values
.iter()
.map(|y| Ok(c_string_helper.add(y)? as *mut c_char)),
values.iter().map(|y| Ok(c_string_helper.add(y)?)),
))
.transpose()?,
_ => None,
};
if let Some(l) = _value_list_ptr.as_mut() {
l.push(std::ptr::null_mut());
}
let(minimum_number, maximum_number) = match self.validation_type {
DataValidationType::Integer { number_options:
DataValidationNumberOptions::Between(x, y) |
DataValidationNumberOptions::NotBetween(x, y), .. } => (x as f64, y as f64),
DataValidationType::Decimal { number_options:
DataValidationNumberOptions::Between(x, y) |
DataValidationNumberOptions::NotBetween(x, y), .. } => (x, y),
DataValidationType::Length { number_options:
DataValidationNumberOptions::Between(x, y) |
DataValidationNumberOptions::NotBetween(x, y), .. } => (x as f64, y as f64),
_ => (0., 0.)
let (minimum_number, maximum_number) = match self.validation_type {
DataValidationType::Integer {
number_options:
DataValidationNumberOptions::Between(x, y)
| DataValidationNumberOptions::NotBetween(x, y),
..
} => (x as f64, y as f64),
DataValidationType::Decimal {
number_options:
DataValidationNumberOptions::Between(x, y)
| DataValidationNumberOptions::NotBetween(x, y),
..
} => (x, y),
DataValidationType::Length {
number_options:
DataValidationNumberOptions::Between(x, y)
| DataValidationNumberOptions::NotBetween(x, y),
..
} => (x as f64, y as f64),
_ => (0., 0.),
};
let (minimum_datetime, maximum_datetime) = match &self.validation_type {
DataValidationType::Date { number_options:
DataValidationNumberOptions::Between(x, y)
| DataValidationNumberOptions::NotBetween(x, y), .. }
| DataValidationType::Time { number_options:
DataValidationNumberOptions::Between(x, y)
| DataValidationNumberOptions::NotBetween(x, y), .. } => (x.into(), y.into()),
DataValidationType::Date {
number_options:
DataValidationNumberOptions::Between(x, y)
| DataValidationNumberOptions::NotBetween(x, y),
..
}
| DataValidationType::Time {
number_options:
DataValidationNumberOptions::Between(x, y)
| DataValidationNumberOptions::NotBetween(x, y),
..
} => (x.into(), y.into()),
_ => ((&DateTime::default()).into(), (&DateTime::default()).into()),
};
Ok(CDataValidation {
Expand Down Expand Up @@ -340,7 +393,7 @@ impl DataValidation {

#[derive(Debug, Clone)]
pub(crate) struct CDataValidation {
_value_list_ptr: Option<Vec<*mut c_char>>,
_value_list_ptr: Option<Vec<*const c_char>>,
pub(crate) data_validation: libxlsxwriter_sys::lxw_data_validation,
}

Expand Down

0 comments on commit 97d25b2

Please sign in to comment.