121
122
(GtkClipboardGetFunc)clipboardreq_get,
126
g_free(data.bookheader);
127
if (data.chapterheader_book)
128
g_free(data.chapterheader_book);
129
if (data.chapterheader_chapter)
130
g_free(data.chapterheader_chapter);
131
if (data.versenumber)
132
g_free(data.versenumber);
133
if (data.verselayout_single_verse_ref_last)
134
g_free(data.verselayout_single_verse_ref_last);
135
if (data.verselayout_single_verse_ref_first)
136
g_free(data.verselayout_single_verse_ref_first);
137
if (data.verse_range_verse)
138
g_free(data.verse_range_verse);
126
static void _save(char *filename, char* text,int len)
141
static void _save(EXPORT_DATA data, char* text,int len)
128
GS_message(("%s",filename));
129
g_file_set_contents(filename, text, len, NULL);
143
GS_message(("%s",data.filename));
144
g_file_set_contents(data.filename, text, len, NULL);
146
g_free(data.filename);
148
g_free(data.bookheader);
149
if (data.chapterheader_book)
150
g_free(data.chapterheader_book);
151
if (data.chapterheader_chapter)
152
g_free(data.chapterheader_chapter);
153
if (data.versenumber)
154
g_free(data.versenumber);
155
if (data.verselayout_single_verse_ref_last)
156
g_free(data.verselayout_single_verse_ref_last);
157
if (data.verselayout_single_verse_ref_first)
158
g_free(data.verselayout_single_verse_ref_first);
159
if (data.verse_range_verse)
160
g_free(data.verse_range_verse);
134
163
static void _export_book(EXPORT_DATA data, int type)
136
165
GString *str = g_string_new(NULL);
137
167
SWMgr *mgr = backend->get_mgr();
138
168
SWModule *mod = mgr->Modules[settings.MainWindowModule];
139
169
mod->setKey(settings.currentverse);
140
170
VerseKey *key = (VerseKey *)(SWKey *)(*mod);
141
171
int curChapter = 1;
142
int curBook = key->Book();
172
int curBook = key->getBook();
143
173
int mychapter = 1;
148
179
if (type == HTML)
149
180
g_string_append_printf(str,
150
"%s<center>%s<br/>Chapter %d</center><br/>",
183
(data.version ? mod->getDescription() : ""),
155
g_string_append_printf(str,"%s\n\nChapter %d\n\n",
186
g_string_append_printf(str,data.plain_bookheader,
187
mod->getDescription(),
159
while (key->Book() == curBook && !mod->Error()) {
160
if (key->Chapter() != curChapter) {
190
while (key->getBook() == curBook && !mod->popError()) {
191
if (key->getChapter() != curChapter) {
163
curChapter = key->Chapter();
194
curChapter = key->getChapter();
164
195
if (type == HTML)
165
g_string_append_printf(str,"<br/><center>Chapter %d</center><br/>", curChapter);
196
g_string_append_printf(str,data.chapterheader_book, curChapter);
167
g_string_append_printf(str,"\n\nChapter %d\n\n", curChapter);
198
g_string_append_printf(str,data.plain_chapterheader_book, curChapter);
170
201
if (data.verse_num)
171
202
g_string_append_printf(str,
205
: data.plain_versenumber),
177
208
if (type == HTML)
178
209
g_string_append_printf(str, " %s%s",
179
(char*)mod->RenderText(),
180
(settings.versestyle ? "<br/>" : ""));
210
mod->renderText().c_str(),
211
(settings.versestyle ? "<br>" : ""));
182
213
g_string_append_printf(str, " %s%s",
183
(char*)mod->StripText(),
214
(char*)mod->stripText(),
184
215
(settings.versestyle ? "\n" : ""));
203
234
SWModule *mod = mgr->Modules[settings.MainWindowModule];
204
235
mod->setKey(settings.currentverse);
205
236
VerseKey *key = (VerseKey *)(SWKey *)(*mod);
206
int curChapter = key->Chapter();
207
int curBook = key->Book();
237
int curChapter = key->getChapter();
238
int curBook = key->getBook();
210
241
book = backend->key_get_book(settings.currentverse);
211
242
if (type == HTML)
212
243
g_string_append_printf(str,
213
"%s%s: %s Chapter %d<br/><br/>",
244
data.chapterheader_chapter,
246
(data.version ? mod->getDescription() : ""),
219
250
g_string_append_printf(str,
220
"%s: %s Chapter %d\n\n",
251
data.plain_chapterheader_chapter,
252
mod->getDescription(),
226
(key->Book() == curBook) &&
227
(key->Chapter() == curChapter) &&
256
for (key->setVerse(1);
257
(key->getBook() == curBook) && (key->getChapter() == curChapter) && !mod->popError();
231
260
if (data.verse_num)
232
g_string_append_printf(str, " [%d]", myverse);
261
g_string_append_printf(str,
264
: data.plain_versenumber), myverse);
234
266
if (type == HTML)
235
267
g_string_append_printf(str," %s%s",
236
(char*)mod->RenderText(),
237
(settings.versestyle ? "<br/>" : ""));
268
mod->renderText().c_str(),
269
(settings.versestyle ? "<br>" : ""));
239
271
g_string_append_printf(str," %s%s",
240
(char*)mod->StripText(),
272
(char*)mod->stripText(),
241
273
(settings.versestyle ? "\n" : ""));
244
276
if (type == HTML)
245
277
g_string_append_printf(str,"%s","</body></html>");
246
278
if (data.filename)
247
_save(data.filename, str->str,str->len);
279
_save(data, str->str,str->len);
249
_copy_to_clipboard (str->str, str->len);
281
_copy_to_clipboard (data, str->str, str->len);
250
282
g_string_free(str,TRUE);
265
298
book = backend->key_get_book(settings.currentverse);
266
299
if (type == HTML)
267
g_string_append_printf(str,
268
"%s%s%s (%s %d:%d [%s])</body></html>",
270
(char*)mod->RenderText(),
271
(settings.versestyle ? "<br/>" : ""),
275
settings.MainWindowModule);
300
if (data.reference_last)
301
g_string_append_printf(str,
302
data.verselayout_single_verse_ref_last,
304
mod->renderText().c_str(),
308
(data.version ? modstr : ""));
310
g_string_append_printf(str,
311
data.verselayout_single_verse_ref_first,
316
(data.version ? modstr : ""),
317
mod->renderText().c_str());
277
g_string_append_printf(str,
278
"%s%s (%s %d:%d [%s])",
279
(char*)mod->StripText(),
280
(settings.versestyle ? "\n" : ""),
284
settings.MainWindowModule);
319
if (data.reference_last)
320
g_string_append_printf(str,
321
data.plain_verselayout_single_verse_ref_last,
322
(char*)mod->stripText(),
326
(data.version ? modstr : ""));
328
g_string_append_printf(str,
329
data.plain_verselayout_single_verse_ref_first,
333
(data.version ? modstr : ""),
334
(char*)mod->stripText());
286
337
if (data.filename)
287
_save(data.filename, str->str,str->len);
338
_save(data, str->str,str->len);
289
_copy_to_clipboard (str->str, str->len);
340
_copy_to_clipboard (data, str->str, str->len);
291
342
g_string_free(str,TRUE);
297
350
static void _export_verse_range (EXPORT_DATA data, int type)
317
371
if (type == HTML)
318
372
g_string_append_printf(str, "%s", HTML_START);
320
for (key->Verse(data.start_verse);
321
(key->Verse() <= data.end_verse) &&
322
(key->Book() == curBook) &&
323
(key->Chapter() == curChapter) &&
374
if (!data.reference_last)
375
g_string_append_printf(str,
377
? data.verse_range_ref_first
378
: data.plain_verse_range_ref_first),
383
(data.version ? modstr : ""));
385
for (key->setVerse(data.start_verse);
386
(key->getVerse() <= data.end_verse) &&
387
(key->getBook() == curBook) &&
388
(key->getChapter() == curChapter) &&
327
392
if (data.verse_num)
328
g_string_append_printf(str, "[%d]", key->Verse());
393
g_string_append_printf(str,
396
: data.plain_versenumber),
330
399
if (type == HTML)
331
g_string_append_printf(str," %s%s ",
332
(char*)mod->RenderText(),
333
(settings.versestyle ? "<br/>" : ""));
400
g_string_append_printf(str,data.verse_range_verse,
401
mod->renderText().c_str(),
402
(settings.versestyle ? "<br>" : " "));
335
g_string_append_printf(str," %s%s ",
336
(char*)mod->StripText(),
337
(settings.versestyle ? "\n" : ""));
404
g_string_append_printf(str,data.verse_range_verse,
405
(char*)mod->stripText(),
406
(settings.versestyle ? "\n" : " "));
408
// back up one verse.
409
// if we have dumped the last verse of a chapter, then we will have stepped
410
// into next chapter in order to end loop above. this reverts us correctly.
340
g_string_append_printf(str,
341
"%s(%s %d:%d-%d [%s])",
342
((type == HTML) ? "<br/>" : "\n"),
347
settings.MainWindowModule);
413
if (data.reference_last)
414
g_string_append_printf(str,
415
((type == HTML) ? data.verse_range_ref_last
416
: data.plain_verse_range_ref_last),
417
((type == HTML) ? "<br>" : "\n"),
422
(data.version ? modstr : ""));
349
424
if (type == HTML)
350
g_string_append_printf(str, "</body></html>");
425
g_string_append_printf(str, "</body></html> ");
351
426
if (data.filename)
352
_save(data.filename, str->str, str->len);
427
_save(data, str->str, str->len);
354
_copy_to_clipboard (str->str, str->len);
429
_copy_to_clipboard (data, str->str, str->len);
355
430
g_string_free(str,TRUE);
361
void main_export_html(EXPORT_DATA data)
363
switch (data.passage_type) {
365
_export_book(data, HTML);
368
_export_chapter(data, HTML);
371
_export_verse(data, HTML);
374
_export_verse_range(data, HTML);
379
void main_export_plain(EXPORT_DATA data)
381
switch (data.passage_type) {
383
_export_book(data, PLAIN);
386
_export_chapter(data, PLAIN);
389
_export_verse(data, PLAIN);
392
_export_verse_range(data, PLAIN);
438
void main_export_content(EXPORT_DATA data, gint format)
440
int style = (format ? HTML : PLAIN);
442
// no markers are left in exported text.
443
_set_global_textual("Cross-references", "Off");
444
_set_global_textual("Footnotes", "Off");
446
switch (data.passage_type) {
448
_export_book(data, style);
451
_export_chapter(data, style);
454
_export_verse(data, style);
457
_export_verse_range(data, style);