From 5c9a678dc82b7d774143059178a6edb0ef57a4fa Mon Sep 17 00:00:00 2001 From: chainsawriot Date: Wed, 10 Apr 2024 22:08:41 +0200 Subject: [PATCH 1/2] Add potential test data files for #185 --- tests/testdata/spaces_colnames.ods | Bin 0 -> 7919 bytes tests/testdata/spaces_colnames.xlsx | Bin 0 -> 4779 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/testdata/spaces_colnames.ods create mode 100644 tests/testdata/spaces_colnames.xlsx diff --git a/tests/testdata/spaces_colnames.ods b/tests/testdata/spaces_colnames.ods new file mode 100644 index 0000000000000000000000000000000000000000..a924d162b6fb76b642b5f1fa9b0dfd376120733f GIT binary patch literal 7919 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 literal 0 HcmV?d00001 From 4d0580703be592c03ffe71ae8b9d5c60aff82dd2 Mon Sep 17 00:00:00 2001 From: chainsawriot Date: Mon, 15 Apr 2024 14:40:56 +0200 Subject: [PATCH 2/2] Fix #185 --- DESCRIPTION | 2 +- NEWS.md | 6 ++++++ R/read_ods.R | 3 +++ tests/testdata/spaces_colnames.xlsx | Bin 4779 -> 0 bytes tests/testthat/test_read_ods.R | 5 +++++ 5 files changed, 15 insertions(+), 1 deletion(-) delete mode 100644 tests/testdata/spaces_colnames.xlsx diff --git a/DESCRIPTION b/DESCRIPTION index 429520f..0b9cc26 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: readODS Type: Package Title: Read and Write ODS Files -Version: 2.2.0 +Version: 2.2.0.999 Authors@R: c(person("Gerrit-Jan", "Schutten", role = c("aut"), email = "phonixor@gmail.com"), person("Chung-hong", "Chan", role = c("aut", "cre"), email = "chainsawtiney@gmail.com", comment = c(ORCID = "0000-0002-6232-7530")), diff --git a/NEWS.md b/NEWS.md index fe21d1d..7b6a774 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,9 @@ +# readODS 2.2.0.999 + +## Bug fixes + +* Fix #185 - `trim_ws` for `colnames` behaves the same as `readxl::read_xlsx()`. + # readODS 2.2.0 * Fix #151 - Now `read_ods()` and `list_ods_sheets()` can also be used to process flat ods files. `read_fods()` and `list_fods_sheets()` are still available, but not as the so-called "common interface." diff --git a/R/read_ods.R b/R/read_ods.R index 0eea24f..147bbe5 100644 --- a/R/read_ods.R +++ b/R/read_ods.R @@ -253,6 +253,9 @@ if (strings_as_factors) { res <- .convert_strings_to_factors(df = res) } + if (trim_ws && ncol(res) >= 1) { + colnames(res) <- stringi::stri_trim_both(colnames(res)) + } if (as_tibble) { res <- tibble::as_tibble(x = res, .name_repair = .name_repair) } diff --git a/tests/testdata/spaces_colnames.xlsx b/tests/testdata/spaces_colnames.xlsx deleted file mode 100644 index 59c7051e8d82f1fb1fd521b3a76a95fbb156b1ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4779 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 diff --git a/tests/testthat/test_read_ods.R b/tests/testthat/test_read_ods.R index 728bcfb..b917f6a 100644 --- a/tests/testthat/test_read_ods.R +++ b/tests/testthat/test_read_ods.R @@ -124,6 +124,11 @@ test_that("trim_ws", { expect_equal(read_ods("../testdata/leadingspaces.ods", trim_ws = TRUE)[1,1, drop = TRUE], "abc") }) +test_that("trim_ws and colnames #185", { + expect_equal(colnames(read_ods("../testdata/spaces_colnames.ods", trim_ws = TRUE)), "abc") + expect_equal(colnames(read_ods("../testdata/spaces_colnames.ods", trim_ws = FALSE)), " abc ") +}) + ## V2.0.0 behavior: backward compatibility test_that("Single column ODS v2.0.0", {