SF.net SVN: geany: [751] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Sun Aug 20 20:40:49 UTC 2006
Revision: 751
Author: ntrel
Date: 2006-08-20 13:39:59 -0700 (Sun, 20 Aug 2006)
ViewCVS: http://svn.sourceforge.net/geany/?rev=751&view=rev
Log Message:
-----------
Remove filetypes.h and Scintilla includes from geany.h; Add VALID_DOC_IDX macro
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/callbacks.c
trunk/src/dialogs.c
trunk/src/document.h
trunk/src/filetypes.c
trunk/src/filetypes.h
trunk/src/geany.h
trunk/src/highlighting.c
trunk/src/highlighting.h
trunk/src/keybindings.c
trunk/src/sci_cb.c
trunk/src/sci_cb.h
trunk/src/sciwrappers.c
trunk/src/utils.c
trunk/src/utils.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/ChangeLog 2006-08-20 20:39:59 UTC (rev 751)
@@ -17,6 +17,16 @@
Moved HAVE_FIFO MyApp fields to fifo_info struct in src/main.c.
Prevent unnecessary 'does not look like a filename' debug messages.
Added fifo_finalize().
+ * src/geany.h, src/filetypes.h, document.h, src/highlighting.h,
+ src/sci_cb.h, src/highlighting.c, src/sciwrappers.c:
+ Remove filetypes.h and Scintilla includes from geany.h.
+ * src/document.h: Add VALID_DOC_IDX macro.
+ * src/utils.h, src/utils.c, src/callbacks.c, src/keybindings.c,
+ src/sci_cb.h, src/sci_cb.c, src/dialogs.c, src/filetypes.h,
+ src/filetypes.c:
+ Move utils_brace_match to sci_cb.c.
+ Move utils_find_current_word to sci_cb.c.
+ Move utils_create_file_filter to filetypes.c.
2006-08-19 Enrico Tröger <enrico.troeger at uvena.de>
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/callbacks.c 2006-08-20 20:39:59 UTC (rev 751)
@@ -1042,8 +1042,7 @@
if (event->button == 3)
{
- utils_find_current_word(doc_list[idx].sci, clickpos,
- current_word, sizeof current_word);
+ sci_cb_find_current_word(doc_list[idx].sci, clickpos, current_word, sizeof current_word);
utils_update_popup_goto_items((current_word[0] != '\0') ? TRUE : FALSE);
utils_update_popup_copy_items(idx);
@@ -1437,7 +1436,7 @@
if (idx == -1 || ! doc_list[idx].is_valid)
return;
- utils_find_current_word(doc_list[idx].sci, pos, colour, sizeof colour);
+ sci_cb_find_current_word(doc_list[idx].sci, pos, colour, sizeof colour);
dialogs_show_color(colour);
}
Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/dialogs.c 2006-08-20 20:39:59 UTC (rev 751)
@@ -95,14 +95,14 @@
// add FileFilters(start with "All Files")
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(app->open_filesel),
- utils_create_file_filter(filetypes[GEANY_FILETYPES_ALL]));
+ filetypes_create_file_filter(filetypes[GEANY_FILETYPES_ALL]));
for (i = 0; i < GEANY_MAX_FILE_TYPES - 1; i++)
{
if (filetypes[i])
{
gtk_combo_box_append_text(GTK_COMBO_BOX(combo), filetypes[i]->title);
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(app->open_filesel),
- utils_create_file_filter(filetypes[i]));
+ filetypes_create_file_filter(filetypes[i]));
}
}
gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Detect by file extension "));
Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/document.h 2006-08-20 20:39:59 UTC (rev 751)
@@ -24,8 +24,20 @@
#ifndef GEANY_DOCUMENT_H
#define GEANY_DOCUMENT_H 1
+#ifndef PLAT_GTK
+# define PLAT_GTK 1 // needed for ScintillaWidget.h
+#endif
+
+#include "Scintilla.h"
+#include "ScintillaWidget.h"
+
#include "geany.h"
+#include "filetypes.h"
+#define VALID_DOC_IDX(idx) \
+ ((idx) >= 0 && (idx) < GEANY_MAX_OPEN_FILES && doc_list[idx].is_valid)
+
+
/* structure for representing an open tab with all its related stuff. */
typedef struct document
{
Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/filetypes.c 2006-08-20 20:39:59 UTC (rev 751)
@@ -827,3 +827,24 @@
filetypes[ft]->menu_items->can_exec = TRUE;
}
}
+
+
+GtkFileFilter *filetypes_create_file_filter(filetype *ft)
+{
+ GtkFileFilter *new_filter;
+ gint i;
+
+ new_filter = gtk_file_filter_new();
+ gtk_file_filter_set_name(new_filter, ft->title);
+
+ // (GEANY_FILETYPES_MAX_PATTERNS - 1) because the last field in pattern is NULL
+ //for (i = 0; i < (GEANY_MAX_PATTERNS - 1) && ft->pattern[i]; i++)
+ for (i = 0; ft->pattern[i]; i++)
+ {
+ gtk_file_filter_add_pattern(new_filter, ft->pattern[i]);
+ }
+
+ return new_filter;
+}
+
+
Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/filetypes.h 2006-08-20 20:39:59 UTC (rev 751)
@@ -24,7 +24,14 @@
#ifndef GEANY_FILETYPES_H
#define GEANY_FILETYPES_H 1
+#ifndef PLAT_GTK
+# define PLAT_GTK 1 // needed for ScintillaWidget.h
+#endif
+#include "Scintilla.h"
+#include "ScintillaWidget.h"
+
+
enum
{
GEANY_FILETYPES_C = 0,
@@ -118,4 +125,6 @@
void filetypes_select_radio_item(const filetype *ft);
+GtkFileFilter *filetypes_create_file_filter(filetype *ft);
+
#endif
Modified: trunk/src/geany.h
===================================================================
--- trunk/src/geany.h 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/geany.h 2006-08-20 20:39:59 UTC (rev 751)
@@ -29,20 +29,9 @@
#include <gtk/gtk.h>
-#ifndef PLAT_GTK
-# define PLAT_GTK 1
-#endif
-
-#include "Scintilla.h"
-#include "ScintillaWidget.h"
-
#include "tm_tagmanager.h"
-#include "filetypes.h"
-#define SSM(s, m, w, l) scintilla_send_message(s, m, w, l)
-
-
// for detailed description look in the documentation, things are not
// listed in the documentation should not be changed ;-)
#define GEANY_HOME_DIR g_get_home_dir()
Modified: trunk/src/highlighting.c
===================================================================
--- trunk/src/highlighting.c 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/highlighting.c 2006-08-20 20:39:59 UTC (rev 751)
@@ -28,6 +28,7 @@
#include "sci_cb.h"
#include "utils.h"
#include "main.h"
+#include "filetypes.h"
static style_set *types[GEANY_MAX_FILE_TYPES] = { NULL };
Modified: trunk/src/highlighting.h
===================================================================
--- trunk/src/highlighting.h 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/highlighting.h 2006-08-20 20:39:59 UTC (rev 751)
@@ -24,7 +24,14 @@
#ifndef GEANY_HIGHLIGHTING_H
#define GEANY_HIGHLIGHTING_H 1
+#ifndef PLAT_GTK
+# define PLAT_GTK 1 // needed for ScintillaWidget.h
+#endif
+#include "Scintilla.h"
+#include "ScintillaWidget.h"
+
+
typedef struct
{
gint styling[55][4];
Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/keybindings.c 2006-08-20 20:39:59 UTC (rev 751)
@@ -633,8 +633,7 @@
pos = sci_get_current_position(doc_list[idx].sci);
- utils_find_current_word(doc_list[idx].sci, pos,
- current_word, GEANY_MAX_WORD_LENGTH);
+ sci_cb_find_current_word(doc_list[idx].sci, pos, current_word, GEANY_MAX_WORD_LENGTH);
if (*current_word == 0)
utils_beep();
Modified: trunk/src/sci_cb.c
===================================================================
--- trunk/src/sci_cb.c 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/sci_cb.c 2006-08-20 20:39:59 UTC (rev 751)
@@ -335,10 +335,47 @@
}
+/* Finds a corresponding matching brace to the given pos
+ * (this is taken from Scintilla Editor.cxx,
+ * fit to work with sci_cb_close_block) */
+static gint brace_match(ScintillaObject *sci, gint pos)
+{
+ gchar chBrace = sci_get_char_at(sci, pos);
+ gchar chSeek = utils_brace_opposite(chBrace);
+ gint direction, styBrace, depth = 1;
+
+ if (chSeek == '\0') return -1;
+ styBrace = sci_get_style_at(sci, pos);
+ direction = -1;
+
+ if (chBrace == '(' || chBrace == '[' || chBrace == '{' || chBrace == '<')
+ direction = 1;
+
+ pos = pos + direction;
+ while ((pos >= 0) && (pos < sci_get_length(sci)))
+ {
+ gchar chAtPos = sci_get_char_at(sci, pos - 1);
+ gint styAtPos = sci_get_style_at(sci, pos);
+
+ if ((pos > sci_get_end_styled(sci)) || (styAtPos == styBrace))
+ {
+ if (chAtPos == chBrace)
+ depth++;
+ if (chAtPos == chSeek)
+ depth--;
+ if (depth == 0)
+ return pos;
+ }
+ pos = pos + direction;
+ }
+ return - 1;
+}
+
+
void sci_cb_close_block(ScintillaObject *sci, gint pos)
{
gint x = 0, cnt = 0;
- gint start_brace = utils_brace_match(sci, pos);
+ gint start_brace = brace_match(sci, pos);
gint line = sci_get_line_from_position(sci, pos);
gint line_start = sci_get_position_from_line(sci, line);
gint line_len = sci_get_line_length(sci, line);
@@ -377,6 +414,32 @@
}
+void sci_cb_find_current_word(ScintillaObject *sci, gint pos, gchar *word, size_t wordlen)
+{
+ gint line = sci_get_line_from_position(sci, pos);
+ gint line_start = sci_get_position_from_line(sci, line);
+ gint startword = pos - line_start;
+ gint endword = pos - line_start;
+ gchar *chunk = g_malloc(sci_get_line_length(sci, line) + 1);
+
+ word[0] = '\0';
+ sci_get_line(sci, line, chunk);
+ chunk[sci_get_line_length(sci, line)] = '\0';
+
+ while (startword > 0 && strchr(GEANY_WORDCHARS, chunk[startword - 1]))
+ startword--;
+ while (chunk[endword] && strchr(GEANY_WORDCHARS, chunk[endword]))
+ endword++;
+ if(startword == endword)
+ return;
+
+ chunk[endword] = '\0';
+
+ g_strlcpy(word, chunk + startword, wordlen); //ensure null terminated
+ g_free(chunk);
+}
+
+
gboolean sci_cb_show_calltip(ScintillaObject *sci, gint pos, gint idx)
{
gint orig_pos = pos; //the position for the calltip
@@ -413,7 +476,7 @@
if (lexer == SCLEX_CPP && (style == SCE_C_COMMENT ||
style == SCE_C_COMMENTLINE || style == SCE_C_COMMENTDOC)) return FALSE;
- utils_find_current_word(sci, pos - 1, word, sizeof word);
+ sci_cb_find_current_word(sci, pos - 1, word, sizeof word);
if (word[0] == '\0') return FALSE;
tags = tm_workspace_find(word, tm_tag_max_t, NULL, FALSE, doc_list[idx].file_type->lang);
@@ -913,7 +976,8 @@
{
gint first_line, last_line;
gint x, i, line_start, line_len;
- gint sel_start, sel_end, co_len;
+ gint sel_start, sel_end;
+ gsize co_len;
gchar sel[64], *co, *cc;
gboolean break_loop = FALSE, single_line = FALSE;
filetype *ft;
Modified: trunk/src/sci_cb.h
===================================================================
--- trunk/src/sci_cb.h 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/sci_cb.h 2006-08-20 20:39:59 UTC (rev 751)
@@ -22,7 +22,16 @@
#ifndef GEANY_SCI_CB_H
#define GEANY_SCI_CB_H 1
+#ifndef PLAT_GTK
+# define PLAT_GTK 1 // needed for ScintillaWidget.h
+#endif
+#include "Scintilla.h"
+#include "ScintillaWidget.h"
+
+#define SSM(s, m, w, l) scintilla_send_message(s, m, w, l)
+
+
gchar **html_entities;
@@ -43,6 +52,8 @@
gboolean sci_cb_handle_xml(ScintillaObject *sci, gchar ch);
+void sci_cb_find_current_word(ScintillaObject *sci, gint pos, gchar *word, size_t wordlen);
+
gboolean sci_cb_show_calltip(ScintillaObject *sci, gint pos, gint idx);
void sci_cb_do_comment(gint idx);
Modified: trunk/src/sciwrappers.c
===================================================================
--- trunk/src/sciwrappers.c 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/sciwrappers.c 2006-08-20 20:39:59 UTC (rev 751)
@@ -27,7 +27,9 @@
#include "sciwrappers.h"
#include "utils.h"
+#define SSM(s, m, w, l) scintilla_send_message(s, m, w, l)
+
// stolen from cssed (http://cssed.sf.net), thanks
Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/utils.c 2006-08-20 20:39:59 UTC (rev 751)
@@ -263,25 +263,6 @@
}
-GtkFileFilter *utils_create_file_filter(filetype *ft)
-{
- GtkFileFilter *new_filter;
- gint i;
-
- new_filter = gtk_file_filter_new();
- gtk_file_filter_set_name(new_filter, ft->title);
-
- // (GEANY_FILETYPES_MAX_PATTERNS - 1) because the last field in pattern is NULL
- //for (i = 0; i < (GEANY_MAX_PATTERNS - 1) && ft->pattern[i]; i++)
- for (i = 0; ft->pattern[i]; i++)
- {
- gtk_file_filter_add_pattern(new_filter, ft->pattern[i]);
- }
-
- return new_filter;
-}
-
-
/* taken from anjuta, to determine the EOL mode of the file */
gint utils_get_line_endings(gchar* buffer, glong size)
{
@@ -1089,32 +1070,6 @@
}
-void utils_find_current_word(ScintillaObject *sci, gint pos, gchar *word, size_t wordlen)
-{
- gint line = sci_get_line_from_position(sci, pos);
- gint line_start = sci_get_position_from_line(sci, line);
- gint startword = pos - line_start;
- gint endword = pos - line_start;
- gchar *chunk = g_malloc(sci_get_line_length(sci, line) + 1);
-
- word[0] = '\0';
- sci_get_line(sci, line, chunk);
- chunk[sci_get_line_length(sci, line)] = '\0';
-
- while (startword > 0 && strchr(GEANY_WORDCHARS, chunk[startword - 1]))
- startword--;
- while (chunk[endword] && strchr(GEANY_WORDCHARS, chunk[endword]))
- endword++;
- if(startword == endword)
- return;
-
- chunk[endword] = '\0';
-
- g_strlcpy(word, chunk + startword, wordlen); //ensure null terminated
- g_free(chunk);
-}
-
-
/* returns the end-of-line character(s) length of the specified editor */
gint utils_get_eol_char_len(gint idx)
{
@@ -1422,43 +1377,6 @@
}
-/* Finds a corresponding matching brace to the given pos
- * (this is taken from Scintilla Editor.cxx,
- * fit to work with sci_cb_close_block) */
-gint utils_brace_match(ScintillaObject *sci, gint pos)
-{
- gchar chBrace = sci_get_char_at(sci, pos);
- gchar chSeek = utils_brace_opposite(chBrace);
- gint direction, styBrace, depth = 1;
-
- if (chSeek == '\0') return -1;
- styBrace = sci_get_style_at(sci, pos);
- direction = -1;
-
- if (chBrace == '(' || chBrace == '[' || chBrace == '{' || chBrace == '<')
- direction = 1;
-
- pos = pos + direction;
- while ((pos >= 0) && (pos < sci_get_length(sci)))
- {
- gchar chAtPos = sci_get_char_at(sci, pos - 1);
- gint styAtPos = sci_get_style_at(sci, pos);
-
- if ((pos > sci_get_end_styled(sci)) || (styAtPos == styBrace))
- {
- if (chAtPos == chBrace)
- depth++;
- if (chAtPos == chSeek)
- depth--;
- if (depth == 0)
- return pos;
- }
- pos = pos + direction;
- }
- return - 1;
-}
-
-
gchar utils_brace_opposite(gchar ch)
{
switch (ch)
Modified: trunk/src/utils.h
===================================================================
--- trunk/src/utils.h 2006-08-20 15:47:18 UTC (rev 750)
+++ trunk/src/utils.h 2006-08-20 20:39:59 UTC (rev 751)
@@ -87,8 +87,6 @@
void utils_set_fullscreen(void);
-GtkFileFilter *utils_create_file_filter(filetype *ft);
-
void utils_update_tag_list(gint idx, gboolean update);
gchar *utils_convert_to_utf8(const gchar *buffer, gsize size, gchar **used_encoding);
@@ -107,8 +105,6 @@
//gchar *utils_get_current_tag(gint idx, gint direction);
gint utils_get_current_function(gint idx, const gchar **tagname);
-void utils_find_current_word(ScintillaObject *sci, gint pos, gchar *word, size_t wordlen);
-
/* returns the end-of-line character(s) length of the specified editor */
gint utils_get_eol_char_len(gint idx);
@@ -141,12 +137,6 @@
gchar *utils_remove_ext_from_filename(const gchar *filename);
-/* Finds a corresponding matching brace to the given pos
- * (this is taken from Scintilla Editor.cxx,
- * fit to work with sci_cb_close_block) */
-gint utils_brace_match(ScintillaObject *sci, gint pos);
-
-
gchar utils_brace_opposite(gchar ch);
gchar *utils_get_hostname(void);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list