[gnumeric] ssconvert: add %o for ssconvert template expansion to object name.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] ssconvert: add %o for ssconvert template expansion to object name.
- Date: Mon, 20 Apr 2020 18:19:15 +0000 (UTC)
commit e9761eadf1f894fc24489be7a4ac932e51bd7681
Author: Morten Welinder <terra gnome org>
Date: Mon Apr 20 14:18:37 2020 -0400
ssconvert: add %o for ssconvert template expansion to object name.
ChangeLog | 5 +++++
doc/ssconvert.1 | 5 +++--
src/ssconvert.c | 17 ++++++++++++++---
3 files changed, 22 insertions(+), 5 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 821e1c8d1..261fa1b32 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2020-04-20 Morten Welinder <terra gnome org>
+
+ * src/ssconvert.c (resolve_template): Expand %o to sheet object
+ name, if present, or the empty string.
+
2020-04-19 Morten Welinder <terra gnome org>
* src/ssconvert.c (list_image_formats): New function, handling new
diff --git a/doc/ssconvert.1 b/doc/ssconvert.1
index 575b59084..431489fe7 100644
--- a/doc/ssconvert.1
+++ b/doc/ssconvert.1
@@ -88,8 +88,9 @@ workbook. The merge will be aborted if there are name conflicts.
.B \-S, \-\-export\-file\-per\-sheet
Export a file for each sheet if the exporter only supports one sheet at a
time. The output filename is treated as a template in which sheet number
-is substituted for %n and/or sheet name is substituted for %s. If there
-are no substitutions, a default of ".%s" is added.
+is substituted for %n, sheet name is substituted for %s, and sheet object
+name is substituted for %o in case of graph export. If there are no
+substitutions, a default of ".%n" is added.
.SS "Help options"
.TP
diff --git a/src/ssconvert.c b/src/ssconvert.c
index c2cf5db5a..2b506cc62 100644
--- a/src/ssconvert.c
+++ b/src/ssconvert.c
@@ -631,7 +631,8 @@ merge (Workbook *wb, char const *inputs[],
}
static char *
-resolve_template (const char *template, Sheet *sheet, unsigned n)
+resolve_template (const char *template,
+ Sheet *sheet, SheetObject *so, unsigned n)
{
GString *s = g_string_new (NULL);
while (1) {
@@ -653,6 +654,16 @@ resolve_template (const char *template, Sheet *sheet, unsigned n)
case 's':
g_string_append (s, sheet->name_unquoted);
break;
+ case 'o': {
+ char *name = NULL;
+ if (so)
+ g_object_get (so, "name", &name, NULL);
+ if (name) {
+ g_string_append (s, name);
+ g_free (name);
+ }
+ break;
+ }
case '%':
g_string_append_c (s, '%');
break;
@@ -914,7 +925,7 @@ do_split_save (GOFileSaver *fs, WorkbookView *wbv,
ssconvert_object_export_type))
continue;
- tmpfile = resolve_template (template, sheet, file_idx++);
+ tmpfile = resolve_template (template, sheet, so, file_idx++);
sheet_object_save_as_image (so, ssconvert_image_format, resolution,
tmpfile, &err);
@@ -928,7 +939,7 @@ do_split_save (GOFileSaver *fs, WorkbookView *wbv,
}
g_slist_free (objs);
} else {
- char *tmpfile = resolve_template (template, sheet, file_idx++);
+ char *tmpfile = resolve_template (template, sheet, NULL, file_idx++);
res = !workbook_view_save_as (wbv, fs, tmpfile, cc);
g_free (tmpfile);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]