[geany/geany-plugins] 9b690f: lineoperations: removed unnecessary parameters
Sylvan Mostert
git-noreply at xxxxx
Tue Jan 3 21:46:07 UTC 2017
Branch: refs/heads/master
Author: Sylvan Mostert <smostert.dev at gmail.com>
Committer: Sylvan Mostert <smostert.dev at gmail.com>
Date: Fri, 09 Sep 2016 05:47:12 UTC
Commit: 9b690f10775776fac556d33af705fd1bb580c7bf
https://github.com/geany/geany-plugins/commit/9b690f10775776fac556d33af705fd1bb580c7bf
Log Message:
-----------
lineoperations: removed unnecessary parameters
Most functions did not need GeanyDocument* passed in so it was removed.
For functions that did need GeanyDocument*, it was reduced to either
GeanyEditor* or ScintillaObject*.
Modified Paths:
--------------
lineoperations/src/linefunctions.c
lineoperations/src/linefunctions.h
lineoperations/src/lineoperations.c
Modified: lineoperations/src/linefunctions.c
35 lines changed, 22 insertions(+), 13 deletions(-)
===================================================================
@@ -1,5 +1,6 @@
/*
- * linefunctions.c - Line operations, remove duplicate lines, empty lines, lines with only whitespace, sort lines.
+ * linefunctions.c - Line operations, remove duplicate lines, empty lines,
+ * lines with only whitespace, sort lines.
*
* Copyright 2015 Sylvan Mostert <smostert.dev at gmail.com>
*
@@ -23,14 +24,16 @@
/* comparison function to be used in qsort */
-static gint compare_asc(const void * a, const void * b)
+static gint
+compare_asc(const void * a, const void * b)
{
return strcmp(*(const gchar **) a, *(const gchar **) b);
}
/* comparison function to be used in qsort */
-static gint compare_desc(const void * a, const void * b)
+static gint
+compare_desc(const void * a, const void * b)
{
return strcmp(*(const gchar **) b, *(const gchar **) a);
}
@@ -85,12 +88,12 @@ rmdupln(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file)
for(j = (i+1); j < num_lines; j++)
{
if(!to_remove[j] && strcmp(lines[i], lines[j]) == 0)
- to_remove[j] = TRUE; /* line is duplicate, mark to remove */
+ to_remove[j] = TRUE; /* line is duplicate, mark to remove */
}
}
}
- /* copy **lines into 'new_file' if it is not FALSE(not duplicate) */
+ /* copy **lines into 'new_file' if it is not FALSE (not duplicate) */
for(i = 0; i < num_lines; i++)
if(!to_remove[i])
nf_end = g_stpcpy(nf_end, lines[i]);
@@ -145,8 +148,8 @@ rmemtyln(GeanyDocument *doc, gint line_num, gint end_line_num)
while(line_num <= end_line_num) /* loop through lines */
{
/* check if the first posn of the line is also the end of line posn */
- if(sci_get_position_from_line(doc->editor->sci, i) ==
- sci_get_line_end_position(doc->editor->sci, i))
+ if(sci_get_position_from_line(sci, line_num) ==
+ sci_get_line_end_position (sci, line_num))
{
scintilla_send_message(doc->editor->sci,
SCI_DELETERANGE,
@@ -155,6 +158,7 @@ rmemtyln(GeanyDocument *doc, gint line_num, gint end_line_num)
line_num--;
end_line_num--;
}
+ line_num++;
}
}
@@ -169,13 +173,13 @@ rmwhspln(GeanyDocument *doc, gint line_num, gint end_line_num)
{
indent = scintilla_send_message(doc->editor->sci,
SCI_GETLINEINDENTPOSITION,
- i, 0);
+ line_num, 0);
/* check if the posn of indentation is also the end of line posn */
if(indent -
- sci_get_position_from_line(doc->editor->sci, i) ==
- sci_get_line_end_position(doc->editor->sci, i)-
- sci_get_position_from_line(doc->editor->sci, i))
+ sci_get_position_from_line(doc->editor->sci, line_num) ==
+ sci_get_line_end_position (doc->editor->sci, line_num)-
+ sci_get_position_from_line(doc->editor->sci, line_num))
{
scintilla_send_message(doc->editor->sci,
SCI_DELETERANGE,
@@ -184,13 +188,16 @@ rmwhspln(GeanyDocument *doc, gint line_num, gint end_line_num)
line_num--;
end_line_num--;
}
+ line_num++;
}
}
/* Sort Lines Ascending */
-void sortlinesasc(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file) {
+void
+sortlnsasc(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file)
+{
gchar *nf_end = new_file; /* points to last char of new_file */
gint i;
@@ -203,7 +210,9 @@ void sortlinesasc(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_
/* Sort Lines Descending */
-void sortlinesdesc(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file) {
+void
+sortlndesc(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file)
+{
gchar *nf_end = new_file; /* points to last char of new_file */
gint i;
Modified: lineoperations/src/linefunctions.h
14 lines changed, 7 insertions(+), 7 deletions(-)
===================================================================
@@ -32,36 +32,36 @@
/* Remove Duplicate Lines, sorted */
void
-rmdupst(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file);
+rmdupst(gchar **lines, gint num_lines, gchar *new_file);
/* Remove Duplicate Lines, ordered */
void
-rmdupln(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file);
+rmdupln(gchar **lines, gint num_lines, gchar *new_file);
/* Remove Unique Lines */
void
-rmunqln(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file);
+rmunqln(gchar **lines, gint num_lines, gchar *new_file);
/* Remove Empty Lines */
void
-rmemtyln(GeanyDocument *doc, gint line_num, gint end_line_num);
+rmemtyln(ScintillaObject *sci, gint line_num, gint end_line_num);
/* Remove Whitespace Lines */
void
-rmwhspln(GeanyDocument *doc, gint line_num, gint end_line_num);
+rmwhspln(ScintillaObject *sci, gint line_num, gint end_line_num);
/* Sort Lines Ascending */
void
-sortlnsasc(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file);
+sortlnsasc(gchar **lines, gint num_lines, gchar *new_file);
/* Sort Lines Descending */
void
-sortlndesc(GeanyDocument *doc, gchar **lines, gint num_lines, gchar *new_file);
+sortlndesc(gchar **lines, gint num_lines, gchar *new_file);
#endif
Modified: lineoperations/src/lineoperations.c
48 lines changed, 23 insertions(+), 25 deletions(-)
===================================================================
@@ -39,42 +39,42 @@ struct lo_lines {
};
-/* select lines in document based on lo_lines struct parameter */
+/* selects lines in document (based of lo_lines struct parameter) */
static void
-select_lines(GeanyDocument *doc, struct lo_lines sel)
+select_lines(GeanyEditor *editor, struct lo_lines sel)
{
/* set the selection to beginning of first line */
- sci_set_selection_start(doc->editor->sci,
- sci_get_position_from_line(doc->editor->sci, sel.start_posn_line));
+ sci_set_selection_start(editor->sci,
+ sci_get_position_from_line(editor->sci, sel.start_posn_line));
/* set the selection to end of last line */
- sci_set_selection_end(doc->editor->sci,
- sci_get_line_end_position(doc->editor->sci, sel.end_posn_line) +
- editor_get_eol_char_len(doc->editor));
+ sci_set_selection_end(editor->sci,
+ sci_get_line_end_position(editor->sci, sel.end_posn_line) +
+ editor_get_eol_char_len(editor));
}
/* get lo_lines struct based off of document */
static struct lo_lines
-get_current_sel_lines(GeanyDocument *doc)
+get_current_sel_lines(ScintillaObject *sci)
{
struct lo_lines sel = { 0, 0 };
gint start_posn = 0; /* position of selection start */
gint end_posn = 0; /* position of selection end */
/* check for selection */
- if(sci_has_selection(doc->editor->sci))
+ if(sci_has_selection(sci))
{
/* get the start and end positions */
- start_posn = sci_get_selection_start(doc->editor->sci);
- end_posn = sci_get_selection_end (doc->editor->sci);
+ start_posn = sci_get_selection_start(sci);
+ end_posn = sci_get_selection_end (sci);
/* get the line number of those positions */
- sel.start_posn_line = scintilla_send_message(doc->editor->sci,
+ sel.start_posn_line = scintilla_send_message(sci,
SCI_LINEFROMPOSITION,
start_posn, 0);
- sel.end_posn_line = scintilla_send_message(doc->editor->sci,
+ sel.end_posn_line = scintilla_send_message(sci,
SCI_LINEFROMPOSITION,
end_posn, 0);
@@ -85,7 +85,7 @@ get_current_sel_lines(GeanyDocument *doc)
/* if there is no selection, start at first line */
sel.start_posn_line = 0;
/* and end at last one */
- sel.end_posn_line = (sci_get_line_count(doc->editor->sci) - 1);
+ sel.end_posn_line = (sci_get_line_count(sci) - 1);
sel.is_selection = FALSE;
}
@@ -118,13 +118,10 @@ static void
action_indir_manip_item(GtkMenuItem *menuitem, gpointer gdata)
{
/* function pointer to gdata -- function to be used */
- void (*func)(GeanyDocument * doc,
- gchar **lines,
- gint num_lines,
- gchar *new_file) = gdata;
+ void (*func)(gchar **lines, gint num_lines, gchar *new_file) = gdata;
GeanyDocument *doc = document_get_current();
- struct lo_lines sel = get_current_sel_lines(doc);
+ struct lo_lines sel = get_current_sel_lines(doc->editor->sci);
gint num_chars = 0;
gint num_lines = (sel.end_posn_line - sel.start_posn_line) + 1;
gchar **lines = g_malloc(sizeof(gchar *) * num_lines);
@@ -143,7 +140,7 @@ action_indir_manip_item(GtkMenuItem *menuitem, gpointer gdata)
new_file[0] = '\0';
/* select lines to indicate to user what lines were altered */
- select_lines(doc, sel);
+ select_lines(doc->editor, sel);
sci_start_undo_action(doc->editor->sci);
@@ -154,7 +151,7 @@ action_indir_manip_item(GtkMenuItem *menuitem, gpointer gdata)
ensure_final_newline(doc->editor, num_lines);
}
- if(doc) func(doc, lines, num_lines, new_file);
+ if(doc) func(lines, num_lines, new_file);
/* set new document */
if(sci_has_selection(doc->editor->sci))
@@ -181,16 +178,17 @@ static void
action_sci_manip_item(GtkMenuItem *menuitem, gpointer gdata)
{
/* function pointer to gdata -- function to be used */
- void (*func)(GeanyDocument *, gint, gint) = gdata;
+ void (*func)(ScintillaObject *, gint, gint) = gdata;
GeanyDocument *doc = document_get_current();
- struct lo_lines sel = get_current_sel_lines(doc);
+ struct lo_lines sel = get_current_sel_lines(doc->editor->sci);
/* select lines to indicate to user what lines were altered */
- select_lines(doc, sel);
+ if(sel.is_selection)
+ select_lines(doc->editor, sel);
sci_start_undo_action(doc->editor->sci);
- if(doc) func(doc, sel.start_posn_line, sel.end_posn_line);
+ if(doc) func(doc->editor->sci, sel.start_posn_line, sel.end_posn_line);
sci_end_undo_action(doc->editor->sci);
}
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list