+2001-06-06 [hoa]
+
+ * added src/quote_fmt_parse.h
+ * src/compose.c
+ removed warnings
+
+ * src/prefs.[ch]
+ don't modify readonly configuration files
+
+ * src/prefs_account.c
+ * src/prefs_common.c
+ * src/prefs_customheader.c
+ * src/prefs_display_header.c
+ * src/prefs_filter.c
+ * src/prefs_filtering.c
+ * src/prefs_scoring.c
+ don't open dialog box when configuration files
+ are readonly
+
2001-06-05 [sergey]
* configure.in: added AM_PROG_LEX and AC_PROG_YACC.
# include "rfc2015.h"
#endif
-/* #include "quote_fmt_parse.h" */
+#include "quote_fmt_parse.h"
typedef enum
{
g_return_val_if_fail(path != NULL, NULL);
+ if (prefs_is_readonly(path)) {
+ g_warning(_("no permission - %s\n"), path);
+ return NULL;
+ }
+
tmppath = g_strconcat(path, ".tmp", NULL);
if ((fp = fopen(tmppath, "w")) == NULL) {
FILE_OP_ERROR(tmppath, "fopen");
pparam->type);
}
}
+
+gboolean prefs_is_readonly(const gchar * path)
+{
+ if (path == NULL)
+ return TRUE;
+
+ return (access(path, W_OK) != 0 && access(path, F_OK) == 0);
+}
+
+gboolean prefs_rc_is_readonly(const gchar * rcfile)
+{
+ gboolean result;
+ gchar * rcpath;
+
+ if (rcfile == NULL)
+ return TRUE;
+
+ rcpath = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, rcfile, NULL);
+ result = prefs_is_readonly(rcpath);
+ g_free(rcpath);
+
+ return result;
+}
void prefs_set_toggle (PrefParam *pparam);
void prefs_set_data_from_spinbtn(PrefParam *pparam);
void prefs_set_spinbtn (PrefParam *pparam);
+gboolean prefs_is_readonly(const gchar * path);
+gboolean prefs_rc_is_readonly(const gchar * rcfile);
#endif /* __PREFS_H__ */
{
gboolean new_account = FALSE;
+ if (prefs_rc_is_readonly(ACCOUNT_RC))
+ return ac_prefs;
+
debug_print(_("Opening account preferences window...\n"));
inc_autocheck_timer_remove();
void prefs_common_open(void)
{
+ if (prefs_rc_is_readonly(COMMON_RC))
+ return;
+
inc_autocheck_timer_remove();
if (!dialog.window) {
void prefs_custom_header_open(PrefsAccount *ac)
{
+ if (prefs_rc_is_readonly(CUSTOM_HEADER_RC))
+ return;
+
if (!customhdr.window) {
prefs_custom_header_create();
}
void prefs_display_header_open(void)
{
+ if (prefs_rc_is_readonly(DISPLAY_HEADER_RC))
+ return;
+
if (!dispheader.window) {
prefs_display_header_create();
}
void prefs_filter_open(void)
{
+ if (prefs_rc_is_readonly(FILTER_RC))
+ return;
+
inc_autocheck_timer_remove();
if (!filter.window) {
void prefs_filtering_open(void)
{
+ if (prefs_rc_is_readonly(FILTERING_RC))
+ return;
+
inc_autocheck_timer_remove();
if (!filtering.window) {
void prefs_scoring_open(FolderItem * item)
{
+ if (prefs_rc_is_readonly(SCORING_RC))
+ return;
+
inc_autocheck_timer_remove();
if (!scoring.window) {
--- /dev/null
+#ifndef QUOTE_FMT_PARSE_H
+
+#define QUOTE_FMT_PARSE_H
+
+gchar * quote_fmt_get_buffer();
+void quote_fmt_init(MsgInfo * info, gchar * my_quote_str);
+int quote_fmtparse(void);
+
+#endif