Revision: 1814 http://geany.svn.sourceforge.net/geany/?rev=1814&view=rev Author: eht16 Date: 2007-08-22 11:04:37 -0700 (Wed, 22 Aug 2007)
Log Message: ----------- Fix some minor LaTeX code errors. Add generation date to HTML header and as comment in the generated LaTeX code.
Modified Paths: -------------- trunk/ChangeLog trunk/plugins/export.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-08-21 17:43:42 UTC (rev 1813) +++ trunk/ChangeLog 2007-08-22 18:04:37 UTC (rev 1814) @@ -1,3 +1,11 @@ +2007-08-22 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> + + * plugins/export.c: + Fix some minor LaTeX code errors. + Add generation date to HTML header and as comment in the generated + LaTeX code. + + 2007-08-21 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* src/editor.h: Remove unused struct.
Modified: trunk/plugins/export.c =================================================================== --- trunk/plugins/export.c 2007-08-21 17:43:42 UTC (rev 1813) +++ trunk/plugins/export.c 2007-08-22 18:04:37 UTC (rev 1814) @@ -35,7 +35,7 @@ PluginFields *plugin_fields; GeanyData *geany_data;
-VERSION_CHECK(10) +VERSION_CHECK(12) PLUGIN_INFO(_("Export"), _("Exports the current file into different formats."))
#define doc_array geany_data->doc_array @@ -56,6 +56,7 @@ <title>{export_filename}</title>\n\ <meta http-equiv="content-type" content="text/html;charset=utf-8" />\n\ <meta name="generator" content="Geany " VERSION "" />\n\ + <meta name="date" content="{export_date}">\n\ <style type="text/css">\n\ {export_styles}\n\ </style>\n\ @@ -69,6 +70,7 @@ </html>\n"
#define TEMPLATE_LATEX "\ +% {export_filename} (LaTeX code generated by Geany " VERSION " on {export_date})\n\ \documentclass[a4paper]{article}\n\ \usepackage[a4paper,margin=2cm]{geometry}\n\ \usepackage[utf8x]{inputenc}\n\ @@ -95,6 +97,12 @@ MAX_TYPES };
+enum +{ + DATE_TYPE_DEFAULT, + DATE_TYPE_HTML +}; + typedef void (*ExportFunc) (gint idx, const gchar *filename, gboolean use_zoom); typedef struct { @@ -267,6 +275,34 @@ }
+static gchar *get_date(gint type) +{ + static gchar str[128]; + gchar *format; + time_t t; + struct tm *tmp; + + t = time(NULL); + tmp = localtime(&t); + if (tmp == NULL) + return ""; + + if (type == DATE_TYPE_HTML) +// needs testing +#ifdef _GNU_SOURCE + format = "%Y-%m-%dT%H:%M:%S%z"; +#else + format = "%Y-%m-%dT%H:%M:%S"; +#endif + else + format = "%c"; + + strftime(str, sizeof str, format, tmp); + + return str; +} + + static void on_file_save_dialog_response(GtkDialog *dialog, gint response, gpointer user_data) { ExportInfo *exi = user_data; @@ -376,7 +412,10 @@ case ' ': { if (c_next == ' ') + { g_string_append(body, "{\hspace*{1em}}"); + i++; // skip the next character + } else g_string_append_c(body, ' '); break; @@ -394,7 +433,7 @@ } case '\': { - g_string_append(body, "\textbackslash"); + g_string_append(body, "\symbol{92}"); break; } case '~': @@ -404,15 +443,46 @@ } case '^': { - g_string_append(body, "\symbol{92}"); + g_string_append(body, "\symbol{94}"); break; } + /// TODO still don't work for "---" or "----" case '-': // mask "--" { if (c_next == '-') - g_string_append(body, "-\@-"); + { + g_string_append(body, "-\/-"); + i++; // skip the next character + } + else + g_string_append_c(body, '-'); + break; } + case '<': // mask "<<" + { + if (c_next == '<') + { + g_string_append(body, "<\/<"); + i++; // skip the next character + } + else + g_string_append_c(body, '<'); + + break; + } + case '>': // mask ">>" + { + if (c_next == '>') + { + g_string_append(body, ">\/>"); + i++; // skip the next character + } + else + g_string_append_c(body, '>'); + + break; + } default: g_string_append_c(body, c); } column++; @@ -459,7 +529,7 @@ latex = g_strdup(TEMPLATE_LATEX); latex = utils->str_replace(latex, "{export_content}", body->str); latex = utils->str_replace(latex, "{export_styles}", cmds->str); - // {export_filename} is currently unused but maybe someone want to use it + latex = utils->str_replace(latex, "{export_date}", get_date(DATE_TYPE_DEFAULT)); if (doc_list[idx].file_name == NULL) latex = utils->str_replace(latex, "{export_filename}", GEANY_STRING_UNTITLED); else @@ -608,6 +678,7 @@
// write all html = g_strdup(TEMPLATE_HTML); + html = utils->str_replace(html, "{export_date}", get_date(DATE_TYPE_HTML)); html = utils->str_replace(html, "{export_content}", body->str); html = utils->str_replace(html, "{export_styles}", css->str); if (doc_list[idx].file_name == NULL)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.