SF.net SVN: geany:[4159] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun Sep 6 16:50:20 UTC 2009
Revision: 4159
http://geany.svn.sourceforge.net/geany/?rev=4159&view=rev
Author: eht16
Date: 2009-09-06 16:50:20 +0000 (Sun, 06 Sep 2009)
Log Message:
-----------
Adjust coding style (no code changes).
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/build.c
trunk/src/build.h
trunk/src/project.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-09-06 16:50:04 UTC (rev 4158)
+++ trunk/ChangeLog 2009-09-06 16:50:20 UTC (rev 4159)
@@ -12,6 +12,8 @@
Fix a compiler warning.
* src/document.c:
Fix crash when opening documents.
+ * src/build.c, src/build.h, src/project.c:
+ Adjust coding style (no code changes).
2009-09-04 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c 2009-09-06 16:50:04 UTC (rev 4158)
+++ trunk/src/build.c 2009-09-06 16:50:20 UTC (rev 4159)
@@ -68,7 +68,7 @@
{
GPid pid;
gint file_type_id;
-}RunInfo;
+} RunInfo;
static RunInfo *run_info;
@@ -83,7 +83,7 @@
#define GBO_TO_POINTER(gbo) (GRP_CMD_TO_POINTER(GBO_TO_GBG(gbo), GBO_TO_CMD(gbo)))
#define GPOINTER_TO_CMD(gptr) (GPOINTER_TO_INT(gptr)&0x1f)
#define GPOINTER_TO_GRP(gptr) ((GPOINTER_TO_INT(gptr)&0xe0)>>5)
-#define FOREACH_GEANYBUILDCMD_ENTRY(i) for(i = 0; i < GEANY_BC_CMDENTRIES_COUNT; i++)
+#define FOREACH_GEANYBUILDCMD_ENTRY(i) for (i = 0; i < GEANY_BC_CMDENTRIES_COUNT; i++)
static gpointer last_toolbutton_action = GBO_TO_POINTER(GEANY_GBO_BUILD);
@@ -135,6 +135,7 @@
gtk_widget_destroy(latex_menu_items.menu); */
}
+
/* note: copied from keybindings.c, may be able to go away */
static void add_menu_accel(GeanyKeyGroup *group, guint kb_id,
GtkAccelGroup *accel_group, GtkWidget *menuitem)
@@ -146,31 +147,36 @@
kb->key, kb->mods, GTK_ACCEL_VISIBLE);
}
+
/* convenience routines to access parts of GeanyBuildCommand */
-static gchar* id_to_str(GeanyBuildCommand *bc, gint id)
+static gchar *id_to_str(GeanyBuildCommand *bc, gint id)
{
return bc->entries[id];
}
-static gchar* buildcmd_label(GeanyBuildCommand *bc)
+
+static gchar *buildcmd_label(GeanyBuildCommand *bc)
{
return id_to_str(bc, GEANY_BC_LABEL);
}
-static gchar* buildcmd_cmd(GeanyBuildCommand *bc)
+
+static gchar *buildcmd_cmd(GeanyBuildCommand *bc)
{
return id_to_str(bc, GEANY_BC_COMMAND);
}
-static gchar* buildcmd_working_dir(GeanyBuildCommand *bc)
+
+static gchar *buildcmd_working_dir(GeanyBuildCommand *bc)
{
return id_to_str(bc, GEANY_BC_WORKING_DIR);
}
-static const gchar* config_keys[] = {
- [GEANY_BC_LABEL] = "LB",
- [GEANY_BC_COMMAND] = "CM",
- [GEANY_BC_WORKING_DIR]= "WD",
+
+static const gchar *config_keys[] = {
+ [GEANY_BC_LABEL] = "LB",
+ [GEANY_BC_COMMAND] = "CM",
+ [GEANY_BC_WORKING_DIR] = "WD"
};
/*-----------------------------------------------------
@@ -180,10 +186,16 @@
*-----------------------------------------------------*/
/* the various groups of commands not in the filetype struct */
-GeanyBuildCommand *ft_def=NULL, *non_ft_proj=NULL, *non_ft_pref=NULL, *non_ft_def=NULL,
- *exec_proj=NULL, *exec_pref=NULL, *exec_def=NULL;
+GeanyBuildCommand *ft_def = NULL;
+GeanyBuildCommand *non_ft_proj = NULL;
+GeanyBuildCommand *non_ft_pref = NULL;
+GeanyBuildCommand *non_ft_def = NULL;
+GeanyBuildCommand *exec_proj = NULL;
+GeanyBuildCommand *exec_pref = NULL;
+GeanyBuildCommand *exec_def = NULL;
/* and the regexen not in the filetype structure */
-gchar *regex_pref=NULL, *regex_proj=NULL;
+gchar *regex_pref = NULL;
+gchar *regex_proj = NULL;
/* control if build commands are printed by get_build_cmd, for debug purposes only*/
#ifndef PRINTBUILDCMDS
@@ -192,12 +204,13 @@
gboolean printbuildcmds=PRINTBUILDCMDS;
static GeanyBuildCommand **cl[GEANY_GBG_COUNT][GEANY_BCS_COUNT] = {
- /* GEANY_BCS_DEF, GEANY_BCS_FT, GEANY_BCS_HOME_FT, GEANY_BCS_PREF, GEANY_BCS_PROJ */
- { &ft_def, NULL, NULL, NULL, NULL },
- { &non_ft_def, NULL, NULL, &non_ft_pref, &non_ft_proj },
- { &exec_def, NULL, NULL, &exec_pref, &exec_proj }
+ /* GEANY_BCS_DEF, GEANY_BCS_FT, GEANY_BCS_HOME_FT, GEANY_BCS_PREF, GEANY_BCS_PROJ */
+ { &ft_def, NULL, NULL, NULL, NULL },
+ { &non_ft_def, NULL, NULL, &non_ft_pref, &non_ft_proj },
+ { &exec_def, NULL, NULL, &exec_pref, &exec_proj }
};
+
/* for debug only, print the commands structures in priority order */
static void printfcmds()
{
@@ -208,8 +221,9 @@
gint cc[GEANY_BCS_COUNT];
gchar c;
doc=document_get_current();
- if (doc!=NULL)ft = doc->file_type;
- if (ft!=NULL)
+ if (doc != NULL)
+ ft = doc->file_type;
+ if (ft != NULL)
{
printf("filetype %s\n",ft->name);
cl[GEANY_GBG_FT][GEANY_BCS_FT] = &(ft->filecmds);
@@ -219,36 +233,40 @@
cl[GEANY_GBG_EXEC][GEANY_BCS_FT] = &(ft->execcmds);
cl[GEANY_GBG_EXEC][GEANY_BCS_HOME_FT] = &(ft->homeexeccmds);
}
- for(i=0;i<GEANY_BCS_COUNT;++i)
+ for (i = 0; i < GEANY_BCS_COUNT; ++i)
{
- m=1;
- for(j=0;j<GEANY_GBG_COUNT;++j)
+ m = 1;
+ for (j = 0; j < GEANY_GBG_COUNT; ++j)
{
- for(k=0;k<build_groups_count[j];++k)
- if (cl[j][i]!=NULL && *(cl[j][i])!=NULL && (*(cl[j][i]))[k].exists)
+ for (k = 0; k < build_groups_count[j]; ++k)
+ if (cl[j][i] != NULL && *(cl[j][i]) != NULL && (*(cl[j][i]))[k].exists)
{
FOREACH_GEANYBUILDCMD_ENTRY(n)
{
- if ((*(cl[j][i]))[k].entries[n]!=NULL && (l=strlen((*(cl[j][i]))[k].entries[n]))>m)m=l;
+ if ((*(cl[j][i]))[k].entries[n] != NULL &&
+ (l=strlen((*(cl[j][i]))[k].entries[n])) > m)
+ {
+ m = l;
+ }
}
}
}
- cc[i]=m;
+ cc[i] = m;
}
- for(i=0;i<GEANY_GBG_COUNT;++i)
+ for (i = 0; i < GEANY_GBG_COUNT; ++i)
{
- for(k=0;k<build_groups_count[i];++k)
+ for (k = 0; k < build_groups_count[i]; ++k)
{
- for(l=0;l<2;++l)
+ for (l = 0; l < 2; ++l)
{
- c=' ';
- for(j=0;j<GEANY_BCS_COUNT;++j)
+ c = ' ';
+ for (j = 0; j < GEANY_BCS_COUNT; ++j)
{
- if (cl[i][j]!=NULL && *(cl[i][j])!=NULL && (*(cl[i][j]))[k].exists)
+ if (cl[i][j]!=NULL && *(cl[i][j]) != NULL && (*(cl[i][j]))[k].exists)
{
FOREACH_GEANYBUILDCMD_ENTRY(n)
{
- if ((*(cl[i][j]))[k].entries[i]!=NULL)
+ if ((*(cl[i][j]))[k].entries[i] != NULL)
printf("%c %*.*s",c,cc[j],cc[j],(*(cl[i][j]))[k].entries[i]);
else
printf("%c %*.*s",c,cc[j],cc[j]," ");
@@ -256,7 +274,7 @@
}
else
printf("%c %*.*s",c,cc[j],cc[j]," ");
- c=',';
+ c = ',';
}
printf("\n");
}
@@ -265,15 +283,16 @@
}
}
+
/* macros to save typing and make the logic visible */
-#define return_cmd_if(src, cmds) if (cmds!=NULL && cmds[cmdindex].exists && below>src)\
+#define return_cmd_if(src, cmds) if (cmds != NULL && cmds[cmdindex].exists && below>src)\
{ \
*fr=src; \
if (printbuildcmds) \
printf("cmd[%d,%d]=%d\n",cmdgrp,cmdindex,src); \
return &(cmds[cmdindex]); \
}
-#define return_ft_cmd_if(src, cmds) if (ft!=NULL && ft->cmds!=NULL \
+#define return_ft_cmd_if(src, cmds) if (ft != NULL && ft->cmds != NULL \
&& ft->cmds[cmdindex].exists && below>src)\
{ \
*fr=src; \
@@ -282,22 +301,28 @@
return &(ft->cmds[cmdindex]); \
}
+
/* get the next lowest command taking priority into account */
static GeanyBuildCommand *get_next_build_cmd(GeanyDocument *doc, gint cmdgrp, gint cmdindex,
- gint below, gint *from)
+ gint below, gint *from)
{
GeanyFiletype *ft=NULL;
gint sink, *fr = &sink;
- if (printbuildcmds)printfcmds();
- if (cmdgrp>=GEANY_GBG_COUNT)return NULL;
- if (from!=NULL)fr = from;
- if (doc==NULL)doc = document_get_current();
- if (doc!=NULL)ft = doc->file_type;
+ if (printbuildcmds)
+ printfcmds();
+ if (cmdgrp >= GEANY_GBG_COUNT)
+ return NULL;
+ if (from != NULL)
+ fr = from;
+ if (doc == NULL)
+ doc = document_get_current();
+ if (doc != NULL)
+ ft = doc->file_type;
switch(cmdgrp)
{
case GEANY_GBG_FT: /* order proj ft, home ft, ft, defft */
- if (ft!=NULL)
+ if (ft != NULL)
{
return_ft_cmd_if(GEANY_BCS_PROJ, projfilecmds);
return_ft_cmd_if(GEANY_BCS_PREF, homefilecmds);
@@ -330,26 +355,31 @@
return get_next_build_cmd(doc, grp, cmdindex, GEANY_BCS_COUNT, from);
}
-#define return_nonblank_regex(src, ptr) if ((ptr)!=NULL && strlen(ptr)>0){ *fr = (src); return &(ptr); }
+#define return_nonblank_regex(src, ptr) if ((ptr) != NULL && strlen(ptr) > 0) \
+ { *fr = (src); return &(ptr); }
+
/* like get_build_cmd, but for regexen, used by filetypes */
gchar **build_get_regex(GeanyBuildGroup grp, GeanyFiletype *ft, gint *from)
{
gint sink, *fr = &sink;
- if (from!=NULL) fr=from;
- if (grp==GEANY_GBG_FT)
+ if (from != NULL)
+ fr=from;
+ if (grp == GEANY_GBG_FT)
{
- if (ft==NULL)
+ if (ft == NULL)
{
GeanyDocument *doc=document_get_current();
- if (doc!=NULL)ft=doc->file_type;
+ if (doc != NULL)
+ ft=doc->file_type;
}
- if (ft==NULL) return NULL;
+ if (ft == NULL)
+ return NULL;
return_nonblank_regex(GEANY_BCS_PROJ, ft->projerror_regex_string);
return_nonblank_regex(GEANY_BCS_HOME_FT, ft->homeerror_regex_string);
return_nonblank_regex(GEANY_BCS_FT, ft->error_regex_string);
}
- else if (grp==GEANY_GBG_NON_FT)
+ else if (grp == GEANY_GBG_NON_FT)
{
return_nonblank_regex(GEANY_BCS_PROJ, regex_proj);
return_nonblank_regex(GEANY_BCS_PREF, regex_pref);
@@ -357,6 +387,7 @@
return NULL;
}
+
/* get pointer to the command group array */
static GeanyBuildCommand *get_build_group(GeanyBuildSource src, GeanyBuildGroup grp)
{
@@ -406,37 +437,47 @@
}
}
-/* remove the specified command, cmd<0 remove whole group */
+
+/* remove the specified command, cmd < 0 remove whole group */
void build_remove_menu_item(GeanyBuildSource src, GeanyBuildGroup grp, gint cmd)
{
GeanyBuildCommand *bc;
gint i;
bc = get_build_group(src, grp);
- if (bc==NULL)return;
- if (cmd<0)
- for (i=0; i<build_groups_count[grp]; ++i)
- bc[i].exists=FALSE;
- else if(cmd<build_groups_count[grp])
- bc[cmd].exists=FALSE;
+ if (bc == NULL)
+ return;
+ if (cmd < 0)
+ {
+ for (i = 0; i < build_groups_count[grp]; ++i)
+ bc[i].exists = FALSE;
+ }
+ else if(cmd < build_groups_count[grp])
+ bc[cmd].exists = FALSE;
}
+
/* get the build build command for the specified menu item */
GeanyBuildCommand *build_get_menu_item(GeanyBuildSource src, GeanyBuildGroup grp, gint cmd)
{
GeanyBuildCommand *bc;
- if (src>=GEANY_BCS_COUNT || grp>=GEANY_GBG_COUNT || cmd>=build_groups_count[grp]) return NULL;
+ if (src >= GEANY_BCS_COUNT || grp >= GEANY_GBG_COUNT || cmd >= build_groups_count[grp])
+ return NULL;
bc = get_build_group(src, grp);
- if (bc==NULL) return NULL;
+ if (bc == NULL)
+ return NULL;
return &(bc[cmd]);
}
+
/* parameter checked version of get_build_cmd for external interface */
GeanyBuildCommand *build_get_current_menu_item(GeanyBuildGroup grp, gint cmd, gint *src)
{
- if (*src>=GEANY_BCS_COUNT || grp>=GEANY_GBG_COUNT || cmd>=build_groups_count[grp]) return NULL;
+ if (*src >= GEANY_BCS_COUNT || grp >= GEANY_GBG_COUNT || cmd >= build_groups_count[grp])
+ return NULL;
return get_build_cmd(NULL, grp, cmd, src);
}
+
/* Clear all error indicators in all documents. */
static void clear_errors(GeanyDocument *doc)
{
@@ -491,20 +532,18 @@
#endif
-/*
- * Replaces occurences of %e and %p with the appropriate filenames,
- *
+/* Replaces occurences of %e and %p with the appropriate filenames,
* %d and %p replacements should be in UTF8 */
-static gchar* build_replace_placeholder(const GeanyDocument* doc, const gchar* src)
+static gchar *build_replace_placeholder(const GeanyDocument *doc, const gchar *src)
{
- GString* stack;
- gchar* filename = NULL;
- gchar* replacement;
- gchar* executable = NULL;
- gchar* ret_str; /* to be freed when not in use anymore */
+ GString *stack;
+ gchar *filename = NULL;
+ gchar *replacement;
+ gchar *executable = NULL;
+ gchar *ret_str; /* to be freed when not in use anymore */
stack = g_string_new(src);
- if (doc!=NULL && doc->file_name!=NULL)
+ if (doc != NULL && doc->file_name != NULL)
{
filename = utils_get_utf8_from_locale(doc->file_name);
@@ -534,7 +573,7 @@
else if (strstr(stack->str, "%p"))
{ /* fall back to %d */
ui_set_statusbar(FALSE, _("failed to substitute %%p, no project active"));
- if (doc!=NULL && filename!=NULL)
+ if (doc != NULL && filename != NULL)
replacement = g_path_get_dirname(filename);
}
@@ -549,8 +588,8 @@
return ret_str; /* don't forget to free src also if needed */
}
-/*
- * dir is the UTF-8 working directory to run cmd in. It can be NULL to use the
+
+/* dir is the UTF-8 working directory to run cmd in. It can be NULL to use the
* idx document directory */
static GPid build_spawn_cmd(GeanyDocument *doc, const gchar *cmd, const gchar *dir)
{
@@ -568,14 +607,14 @@
gint stderr_fd;
#endif
- if(!( (doc!=NULL && NZV(doc->file_name)) || NZV(dir) ))
+ if( !((doc != NULL && NZV(doc->file_name)) || NZV(dir)))
{
geany_debug("Failed to run command with no working directory");
ui_set_statusbar(TRUE, _("Process failed, no working directory"));
- return (GPid)1;
+ return (GPid) 1;
}
- if (doc!=NULL)
+ if (doc != NULL)
clear_errors(doc);
setptr(current_dir_entered, NULL);
@@ -592,8 +631,8 @@
#endif
utf8_cmd_string = utils_get_utf8_from_locale(cmd_string);
- utf8_working_dir = (dir != NULL && strlen(dir)>0) ? g_strdup(dir) :
- g_path_get_dirname(doc->file_name);
+ utf8_working_dir = (dir != NULL && strlen(dir) > 0) ?
+ g_strdup(dir) : g_path_get_dirname(doc->file_name);
working_dir = utils_get_locale_from_utf8(utf8_working_dir);
gtk_list_store_clear(msgwindow.store_compiler);
@@ -605,7 +644,7 @@
/* set the build info for the message window */
g_free(build_info.dir);
build_info.dir = g_strdup(working_dir);
- build_info.file_type_id = (doc==NULL)?GEANY_FILETYPES_NONE : FILETYPE_ID(doc->file_type);
+ build_info.file_type_id = (doc == NULL) ? GEANY_FILETYPES_NONE : FILETYPE_ID(doc->file_type);
build_info.message_count = 0;
#ifdef G_OS_WIN32
@@ -665,7 +704,7 @@
gboolean autoclose = FALSE;
gboolean result = FALSE;
gchar *tmp;
- gchar *cmd_string;
+ gchar *cmd_string;
if (vte_cmd_nonscript != NULL)
*vte_cmd_nonscript = NULL;
@@ -675,10 +714,10 @@
have_project = project != NULL;
cmd = get_build_cmd(doc, GEANY_GBG_EXEC, cmdindex, NULL);
-
cmd_string = build_replace_placeholder(doc, buildcmd_cmd(cmd));
cmd_working_dir = buildcmd_working_dir(cmd);
- if (!NZV(cmd_working_dir)) cmd_working_dir = "%d";
+ if (! NZV(cmd_working_dir))
+ cmd_working_dir = "%d";
working_dir = build_replace_placeholder(doc, cmd_working_dir); /* in utf-8 */
/* only test whether working dir exists, don't change it or else Windows support will break
@@ -1079,6 +1118,7 @@
return TRUE;
}
+
typedef void Callback(GtkWidget *w, gpointer u);
/* run the command catenating cmd_cat if present */
@@ -1087,9 +1127,9 @@
gchar *dir;
gchar *full_command, *subs_command;
GeanyBuildCommand *buildcmd = get_build_cmd(doc, grp, cmd, NULL);
- gchar* cmdstr;
+ gchar *cmdstr;
- if (buildcmd==NULL)
+ if (buildcmd == NULL)
return;
cmdstr = buildcmd_cmd(buildcmd);
@@ -1104,7 +1144,6 @@
else
full_command = cmdstr;
-
dir = build_replace_placeholder(doc, buildcmd_working_dir(buildcmd));
subs_command = build_replace_placeholder(doc, full_command);
build_info.grp = grp;
@@ -1112,7 +1151,8 @@
build_spawn_cmd(doc, subs_command, dir);
g_free(subs_command);
g_free(dir);
- if (cmd_cat != NULL) g_free(full_command);
+ if (cmd_cat != NULL)
+ g_free(full_command);
build_menu_update(doc);
}
@@ -1123,7 +1163,6 @@
* Create build menu and handle callbacks (&toolbar callbacks)
*
*----------------------------------------------------------------*/
-
static void on_make_custom_input_response(const gchar *input)
{
GeanyDocument *doc = document_get_current();
@@ -1132,23 +1171,26 @@
build_info.custom_target);
}
+
static void on_build_menu_item(GtkWidget *w, gpointer user_data)
{
GeanyDocument *doc = document_get_current();
GeanyBuildCommand *bc;
- gint grp=GPOINTER_TO_GRP(user_data);
- gint cmd=GPOINTER_TO_CMD(user_data);
+ gint grp = GPOINTER_TO_GRP(user_data);
+ gint cmd = GPOINTER_TO_CMD(user_data);
if (doc && doc->changed)
document_save_file(doc, FALSE);
if (grp == GEANY_GBG_NON_FT && cmd == GBO_TO_CMD(GEANY_GBO_CUSTOM))
{
- static GtkWidget *dialog = NULL; /* keep dialog for combo history */
+ static GtkWidget *dialog = NULL; /* keep dialog for combo history */
if (! dialog)
+ {
dialog = dialogs_show_input(_("Custom Text"),
_("Enter custom text here, all entered text is appended to the command."),
build_info.custom_target, TRUE, &on_make_custom_input_response);
+ }
else
{
gtk_widget_show(dialog);
@@ -1163,10 +1205,11 @@
return;
}
bc = get_build_cmd(doc, grp, cmd, NULL);
- if (bc!=NULL && strcmp(buildcmd_cmd(bc), "builtin")==0)
+ if (bc != NULL && strcmp(buildcmd_cmd(bc), "builtin") == 0)
{
gchar *uri;
- if (doc==NULL)return;
+ if (doc == NULL)
+ return;
uri = g_strconcat("file:///", g_path_skip_root(doc->file_name), NULL);
utils_open_browser(uri);
g_free(uri);
@@ -1179,6 +1222,7 @@
build_command(doc, grp, cmd, NULL);
};
+
/* group codes for menu items other than the known commands
* value order is important, see the following table for use */
@@ -1198,7 +1242,8 @@
static struct BuildMenuItemSpec {
const gchar *stock_id;
const gint key_binding;
- const gint build_grp, build_cmd;
+ const gint build_grp;
+ const gint build_cmd;
const gchar *fix_label;
Callback *cb;
} build_menu_specs[] = {
@@ -1238,27 +1283,29 @@
0, NULL, NULL }
};
+
static void create_build_menu_item(GtkWidget *menu, GeanyKeyGroup *group, GtkAccelGroup *ag,
struct BuildMenuItemSpec *bs, gchar *lbl, gint grp, gint cmd)
{
GtkWidget *item = gtk_image_menu_item_new_with_mnemonic(lbl);
- if (bs->stock_id!=NULL)
+ if (bs->stock_id != NULL)
{
GtkWidget *image = gtk_image_new_from_stock(bs->stock_id, GTK_ICON_SIZE_MENU);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
}
gtk_widget_show(item);
- if (bs->key_binding>=0)
+ if (bs->key_binding >= 0)
add_menu_accel(group, bs->key_binding, ag, item);
gtk_container_add(GTK_CONTAINER(menu), item);
- if (bs->cb!=NULL)
+ if (bs->cb != NULL)
{
g_signal_connect(item, "activate", G_CALLBACK(bs->cb), GRP_CMD_TO_POINTER(grp,cmd));
}
menu_items.menu_item[grp][cmd] = item;
}
+
static void create_build_menu(BuildMenuItems *build_menu_items)
{
GtkWidget *menu;
@@ -1272,7 +1319,7 @@
build_menu_items->menu_item[GEANY_GBG_EXEC] = g_new0(GtkWidget*, build_groups_count[GEANY_GBG_EXEC]);
build_menu_items->menu_item[GBG_FIXED] = g_new0(GtkWidget*, GBF_COUNT);
- for (i=0; build_menu_specs[i].build_grp != MENU_DONE; ++i)
+ for (i = 0; build_menu_specs[i].build_grp != MENU_DONE; ++i)
{
struct BuildMenuItemSpec *bs = &(build_menu_specs[i]);
if (bs->build_grp == MENU_SEPARATOR)
@@ -1282,25 +1329,25 @@
gtk_container_add(GTK_CONTAINER(menu), item);
build_menu_items->menu_item[GBG_FIXED][bs->build_cmd] = item;
}
- else if (bs->fix_label!=NULL)
+ else if (bs->fix_label != NULL)
{
create_build_menu_item(menu, keygroup, accel_group, bs, gettext(bs->fix_label),
GBG_FIXED, bs->build_cmd);
}
else if (bs->build_grp >= MENU_FT_REST && bs->build_grp <= MENU_SEPARATOR)
{
- gint grp = bs->build_grp-GEANY_GBG_COUNT;
- for (j=bs->build_cmd; j<build_groups_count[grp]; ++j)
+ gint grp = bs->build_grp - GEANY_GBG_COUNT;
+ for (j = bs->build_cmd; j < build_groups_count[grp]; ++j)
{
GeanyBuildCommand *bc = get_build_cmd(NULL, grp, j, NULL);
- gchar *lbl = (bc==NULL)?"":buildcmd_label(bc);
+ gchar *lbl = (bc == NULL) ? "" : buildcmd_label(bc);
create_build_menu_item(menu, keygroup, accel_group, bs, lbl, grp, j);
}
}
else
{
GeanyBuildCommand *bc = get_build_cmd(NULL, bs->build_grp, bs->build_cmd, NULL);
- gchar *lbl = (bc==NULL)?"":buildcmd_label(bc);
+ gchar *lbl = (bc == NULL) ? "" : buildcmd_label(bc);
create_build_menu_item(menu, keygroup, accel_group, bs, lbl, bs->build_grp, bs->build_cmd);
}
}
@@ -1309,42 +1356,44 @@
gtk_menu_item_set_submenu(GTK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_build1")), menu);
}
+
/* portability to various GTK versions needs checking
* conforms to description of gtk_accel_label as child of menu item
* NB 2.16 adds set_label but not yet set_label_mnemonic */
static void geany_menu_item_set_label(GtkWidget *w, gchar *label)
{
- GtkWidget *c=gtk_bin_get_child(GTK_BIN(w));
+ GtkWidget *c = gtk_bin_get_child(GTK_BIN(w));
gtk_label_set_text_with_mnemonic(GTK_LABEL(c), label);
}
+
/* Call this whenever build menu items need to be enabled/disabled.
* Uses current document (if there is one) when idx == -1 */
void build_menu_update(GeanyDocument *doc)
{
gint i, cmdcount, cmd, grp;
- gboolean vis=FALSE;
+ gboolean vis = FALSE;
gboolean have_path, build_running, exec_running, have_errors, cmd_sensitivity;
gboolean can_compile, can_make, run_sensitivity, run_running;
GeanyBuildCommand *bc;
- if (menu_items.menu==NULL)
+ if (menu_items.menu == NULL)
create_build_menu(&menu_items);
if (doc == NULL)
doc = document_get_current();
- have_path = doc!=NULL && doc->file_name != NULL;
+ have_path = doc != NULL && doc->file_name != NULL;
build_running = build_info.pid > (GPid) 1;
have_errors = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(msgwindow.store_compiler), NULL) > 0;
- for (i=0; build_menu_specs[i].build_grp != MENU_DONE; ++i)
+ for (i = 0; build_menu_specs[i].build_grp != MENU_DONE; ++i)
{
struct BuildMenuItemSpec *bs = &(build_menu_specs[i]);
switch(bs->build_grp)
{
case MENU_SEPARATOR:
- if (vis==TRUE)
+ if (vis == TRUE)
{
gtk_widget_show_all(menu_items.menu_item[GBG_FIXED][bs->build_cmd]);
- vis=FALSE;
+ vis = FALSE;
}
else
gtk_widget_hide_all(menu_items.menu_item[GBG_FIXED][bs->build_cmd]);
@@ -1358,20 +1407,20 @@
vis |= TRUE;
break;
default: /* all configurable commands */
- if (bs->build_grp >=GEANY_GBG_COUNT)
+ if (bs->build_grp >= GEANY_GBG_COUNT)
{
- grp = bs->build_grp-GEANY_GBG_COUNT;
+ grp = bs->build_grp - GEANY_GBG_COUNT;
cmdcount = build_groups_count[grp];
}
else
{
grp = bs->build_grp;
- cmdcount = bs->build_cmd+1;
+ cmdcount = bs->build_cmd + 1;
}
- for (cmd=bs->build_cmd; cmd<cmdcount; ++cmd)
+ for (cmd = bs->build_cmd; cmd < cmdcount; ++cmd)
{
GtkWidget *menu_item = menu_items.menu_item[grp][cmd];
- gchar* label;
+ gchar *label;
bc = get_build_cmd(doc, grp, cmd, NULL);
if (bc)
label = buildcmd_label(bc);
@@ -1381,11 +1430,10 @@
if (grp < GEANY_GBG_EXEC)
{
cmd_sensitivity =
- (grp == GEANY_GBG_FT && bc!=NULL && have_path && ! build_running) ||
- (grp == GEANY_GBG_NON_FT && bc!=NULL && ! build_running);
+ (grp == GEANY_GBG_FT && bc != NULL && have_path && ! build_running) ||
+ (grp == GEANY_GBG_NON_FT && bc != NULL && ! build_running);
gtk_widget_set_sensitive(menu_item, cmd_sensitivity);
- if (bc != NULL && label != NULL
- && strlen(label) > 0)
+ if (bc != NULL && label != NULL && strlen(label) > 0)
{
geany_menu_item_set_label(menu_item, label);
gtk_widget_show_all(menu_item);
@@ -1398,10 +1446,11 @@
{
GtkWidget *image;
exec_running = run_info[cmd].pid > (GPid) 1;
- cmd_sensitivity = bc!=NULL || exec_running;
+ cmd_sensitivity = (bc != NULL) || exec_running;
gtk_widget_set_sensitive(menu_item, cmd_sensitivity);
- if (cmd==GBO_TO_CMD(GEANY_GBO_EXEC)) run_sensitivity = cmd_sensitivity;
- if (!exec_running)
+ if (cmd == GBO_TO_CMD(GEANY_GBO_EXEC))
+ run_sensitivity = cmd_sensitivity;
+ if (! exec_running)
{
image = gtk_image_new_from_stock(bs->stock_id, GTK_ICON_SIZE_MENU);
}
@@ -1409,10 +1458,10 @@
{
image = gtk_image_new_from_stock(GTK_STOCK_STOP, GTK_ICON_SIZE_MENU);
}
- if (cmd==GBO_TO_CMD(GEANY_GBO_EXEC)) run_running = exec_running;
+ if (cmd == GBO_TO_CMD(GEANY_GBO_EXEC))
+ run_running = exec_running;
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);
- if (bc != NULL && label != NULL
- && strlen(label) > 0)
+ if (bc != NULL && label != NULL && strlen(label) > 0)
{
geany_menu_item_set_label(menu_item, label);
gtk_widget_show_all(menu_item);
@@ -1425,22 +1474,22 @@
}
}
- can_compile = get_build_cmd(doc, GEANY_GBG_FT, GBO_TO_CMD(GEANY_GBO_BUILD), NULL)!=NULL
+ can_compile = get_build_cmd(doc, GEANY_GBG_FT, GBO_TO_CMD(GEANY_GBO_BUILD), NULL) != NULL
&& have_path && ! build_running;
if (widgets.toolitem_build != NULL)
gtk_widget_set_sensitive(widgets.toolitem_build, can_compile);
can_make = FALSE;
if (widgets.toolitem_make_all != NULL)
gtk_widget_set_sensitive(widgets.toolitem_make_all,
- (can_make |= get_build_cmd(doc, GEANY_GBG_FT, GBO_TO_CMD(GEANY_GBO_MAKE_ALL), NULL)!=NULL
+ (can_make |= get_build_cmd(doc, GEANY_GBG_FT, GBO_TO_CMD(GEANY_GBO_MAKE_ALL), NULL) != NULL
&& ! build_running));
if (widgets.toolitem_make_custom != NULL)
gtk_widget_set_sensitive(widgets.toolitem_make_custom,
- (can_make |= get_build_cmd(doc, GEANY_GBG_FT, GBO_TO_CMD(GEANY_GBO_CUSTOM), NULL)!=NULL
+ (can_make |= get_build_cmd(doc, GEANY_GBG_FT, GBO_TO_CMD(GEANY_GBO_CUSTOM), NULL) != NULL
&& ! build_running));
if (widgets.toolitem_make_object != NULL)
gtk_widget_set_sensitive(widgets.toolitem_make_object,
- (can_make |= get_build_cmd(doc, GEANY_GBG_FT, GBO_TO_CMD(GEANY_GBO_MAKE_OBJECT), NULL)!=NULL
+ (can_make |= get_build_cmd(doc, GEANY_GBG_FT, GBO_TO_CMD(GEANY_GBO_MAKE_OBJECT), NULL) != NULL
&& ! build_running));
if (widgets.toolitem_set_args != NULL)
gtk_widget_set_sensitive(widgets.toolitem_set_args, TRUE);
@@ -1454,6 +1503,7 @@
}
+
/* Call build_menu_update() instead of calling this directly. */
static void set_stop_button(gboolean stop)
{
@@ -1482,13 +1532,14 @@
}
}
+
static void on_set_build_commands_activate(GtkWidget *w, gpointer u)
{
show_build_commands_dialog();
}
-static void
-on_toolbutton_build_activate(GtkWidget *menuitem, gpointer user_data)
+
+static void on_toolbutton_build_activate(GtkWidget *menuitem, gpointer user_data)
{
last_toolbutton_action = user_data;
g_object_set(widgets.build_action, "tooltip", _("Build the current file"), NULL);
@@ -1496,8 +1547,7 @@
}
-static void
-on_toolbutton_make_activate (GtkWidget *menuitem, gpointer user_data)
+static void on_toolbutton_make_activate(GtkWidget *menuitem, gpointer user_data)
{
gchar *msg;
gint grp,cmd;
@@ -1505,11 +1555,11 @@
last_toolbutton_action = user_data;
grp = GPOINTER_TO_GRP(user_data);
cmd = GPOINTER_TO_CMD(user_data);
- if ( last_toolbutton_action==GBO_TO_POINTER(GEANY_GBO_MAKE_ALL))
+ if ( last_toolbutton_action == GBO_TO_POINTER(GEANY_GBO_MAKE_ALL))
msg = _("Build the current file with Make and the default target");
- else if (last_toolbutton_action==GBO_TO_POINTER(GEANY_GBO_CUSTOM))
+ else if (last_toolbutton_action == GBO_TO_POINTER(GEANY_GBO_CUSTOM))
msg = _("Build the current file with Make and the specified target");
- else if (last_toolbutton_action==GBO_TO_POINTER(GEANY_GBO_MAKE_OBJECT))
+ else if (last_toolbutton_action == GBO_TO_POINTER(GEANY_GBO_MAKE_OBJECT))
msg = _("Compile the current file with Make");
else
msg = NULL;
@@ -1517,12 +1567,12 @@
on_build_menu_item(menuitem, user_data);
}
+
static void kill_process(GPid *pid)
{
/* Unix: SIGQUIT is not the best signal to use because it causes a core dump (this should not
* perforce necessary for just killing a process). But we must use a signal which we can
* ignore because the main process get it too, it is declared to ignore in main.c. */
-
gint result;
#ifdef G_OS_WIN32
@@ -1546,9 +1596,7 @@
}
-static void
-on_build_next_error (GtkWidget *menuitem,
- gpointer user_data)
+static void on_build_next_error(GtkWidget *menuitem,gpointer user_data)
{
if (ui_tree_view_find_next(GTK_TREE_VIEW(msgwindow.tree_compiler),
msgwin_goto_compiler_file_line))
@@ -1560,9 +1608,7 @@
}
-static void
-on_build_previous_error (GtkWidget *menuitem,
- gpointer user_data)
+static void on_build_previous_error(GtkWidget *menuitem, gpointer user_data)
{
if (ui_tree_view_find_previous(GTK_TREE_VIEW(msgwindow.tree_compiler),
msgwin_goto_compiler_file_line))
@@ -1573,6 +1619,7 @@
ui_set_statusbar(FALSE, _("No more build errors."));
}
+
void build_toolbutton_build_clicked(GtkAction *action, gpointer unused)
{
if (last_toolbutton_action == GBO_TO_POINTER(GEANY_GBO_BUILD))
@@ -1585,33 +1632,39 @@
}
}
+
/*------------------------------------------------------
*
* Create and handle the build menu configuration dialog
*
*-------------------------------------------------------*/
-
-typedef struct RowWidgets {
+typedef struct RowWidgets
+{
GtkWidget *entries[GEANY_BC_CMDENTRIES_COUNT];
- GeanyBuildSource src, dst;
+ GeanyBuildSource src;
+ GeanyBuildSource dst;
GeanyBuildCommand *cmdsrc;
- gint grp,cmd;
+ gint grp;
+ gint cmd;
gboolean cleared;
-}RowWidgets;
+} RowWidgets;
-static void on_clear_dialog_row( GtkWidget *unused, gpointer user_data )
+
+static void on_clear_dialog_row(GtkWidget *unused, gpointer user_data)
{
RowWidgets *r = (RowWidgets*)user_data;
gint src;
enum GeanyBuildCmdEntries i;
GeanyBuildCommand *bc = get_next_build_cmd(NULL, r->grp, r->cmd, r->dst, &src);
+
if (bc != NULL)
{
r->cmdsrc = bc;
r->src = src;
FOREACH_GEANYBUILDCMD_ENTRY(i)
{
- gtk_entry_set_text(GTK_ENTRY(r->entries[i]), id_to_str(bc,i) != NULL? id_to_str(bc,i):"");
+ gtk_entry_set_text(GTK_ENTRY(r->entries[i]),
+ id_to_str(bc,i) != NULL ? id_to_str(bc,i) : "");
}
}
else
@@ -1625,13 +1678,16 @@
r->cleared = TRUE;
}
-static void on_clear_dialog_regex_row( GtkEntry *regex, gpointer unused )
+
+static void on_clear_dialog_regex_row(GtkEntry *regex, gpointer unused)
{
gtk_entry_set_text(regex,"");
}
+
/* Column headings, array NULL-terminated */
-static gchar *colheads[] = {
+static gchar *colheads[] =
+{
N_("Item"),
N_("Label"),
N_("Command"),
@@ -1647,6 +1703,7 @@
static const int entry_x_padding = 3;
static const int entry_y_padding = 0;
+
static RowWidgets *build_add_dialog_row(GeanyDocument *doc, GtkTable *table, gint row,
GeanyBuildSource dst, gint grp, gint cmd, gboolean dir)
{
@@ -1655,12 +1712,11 @@
GeanyBuildCommand *bc;
gint src;
enum GeanyBuildCmdEntries i;
-
gint column = 0;
- label = gtk_label_new(g_strdup_printf("%d:", cmd+1));
- gtk_table_attach(table, label, column, column+1, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ label = gtk_label_new(g_strdup_printf("%d:", cmd + 1));
+ gtk_table_attach(table, label, column, column + 1, row, row + 1, GTK_FILL,
+ GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
roww = g_new0(RowWidgets, 1);
roww->src = GEANY_BCS_COUNT;
roww->grp = grp;
@@ -1668,28 +1724,30 @@
roww->dst = dst;
FOREACH_GEANYBUILDCMD_ENTRY(i)
{
- column+=1;
+ column += 1;
roww->entries[i] = gtk_entry_new();
- gtk_table_attach(table, roww->entries[i], column, column+1, row, row+1, GTK_FILL,
- GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, roww->entries[i], column, column + 1, row, row + 1, GTK_FILL,
+ GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
}
column++;
clearicon = gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU);
clear = gtk_button_new();
gtk_button_set_image(GTK_BUTTON(clear), clearicon);
- g_signal_connect((gpointer)clear, "clicked", G_CALLBACK(on_clear_dialog_row), (gpointer)roww);
- gtk_table_attach(table, clear, column, column+1, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ g_signal_connect(clear, "clicked", G_CALLBACK(on_clear_dialog_row), roww);
+ gtk_table_attach(table, clear, column, column + 1, row, row + 1, GTK_FILL,
+ GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
roww->cmdsrc = bc = get_build_cmd(doc, grp, cmd, &src);
- if (bc!=NULL)roww->src = src;
+ if (bc != NULL)
+ roww->src = src;
FOREACH_GEANYBUILDCMD_ENTRY(i)
{
- gchar *str="";
- if (bc!=NULL && (str = bc->entries[i])==NULL)str="";
+ gchar *str = "";
+ if (bc != NULL && (str = bc->entries[i]) == NULL)
+ str = "";
gtk_entry_set_text(GTK_ENTRY(roww->entries[i]), str);
}
- if (src>(gint)dst || (grp==GEANY_GBG_FT && (doc==NULL || doc->file_type==NULL)))
+ if (src > (gint)dst || (grp == GEANY_GBG_FT && (doc == NULL || doc->file_type == NULL)))
{
FOREACH_GEANYBUILDCMD_ENTRY(i)
gtk_widget_set_sensitive(roww->entries[i], FALSE);
@@ -1698,12 +1756,17 @@
return roww;
}
-typedef struct TableFields {
+
+typedef struct TableFields
+{
RowWidgets **rows;
- GtkWidget *fileregex, *nonfileregex;
- gchar **fileregexstring, **nonfileregexstring;
+ GtkWidget *fileregex;
+ GtkWidget *nonfileregex;
+ gchar **fileregexstring;
+ gchar **nonfileregexstring;
} TableFields;
+
GtkWidget *build_commands_table(GeanyDocument *doc, GeanyBuildSource dst, TableData *table_data,
GeanyFiletype *ft)
{
@@ -1715,134 +1778,144 @@
gint src;
gboolean sensitivity;
- table = GTK_TABLE(gtk_table_new(build_items_count+12, 5, FALSE));
+ table = GTK_TABLE(gtk_table_new(build_items_count + 12, 5, FALSE));
fields = g_new0(TableFields, 1);
- fields->rows = g_new0(RowWidgets *, build_items_count);
- for (ch= colheads, col=0; *ch!=NULL; ch++, col++)
+ fields->rows = g_new0(RowWidgets*, build_items_count);
+ for (ch = colheads, col = 0; *ch != NULL; ch++, col++)
{
label = gtk_label_new(gettext(*ch));
- gtk_table_attach(table, label, col, col+1, 0, 1,
- GTK_FILL, GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, label, col, col + 1, 0, 1,
+ GTK_FILL, GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
}
sep = gtk_hseparator_new();
gtk_table_attach(table, sep, 0, DC_N_COL, 1, 2, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
- if (ft!=NULL){
+ entry_x_padding, entry_y_padding);
+ if (ft != NULL)
+ {
txt = g_strdup_printf(_("%s commands"), ft->title);
- } else
+ }
+ else
txt = g_strdup(_("No Filetype"));
label = gtk_label_new(txt);
g_free(txt);
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
gtk_table_attach(table, label, 0, DC_N_COL, 2, 3, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
- for (row=3, cmdindex=0, cmd=0; cmd<build_groups_count[GEANY_GBG_FT]; ++row, ++cmdindex, ++cmd)
+ entry_x_padding, entry_y_padding);
+ for (row = 3, cmdindex = 0, cmd = 0; cmd < build_groups_count[GEANY_GBG_FT]; ++row, ++cmdindex, ++cmd)
fields->rows[cmdindex] = build_add_dialog_row(doc, table, row, dst, GEANY_GBG_FT, cmd, FALSE);
label = gtk_label_new(_("Error Regular Expression"));
- gtk_table_attach(table, label, 0, DC_ENTRIES+1, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, label, 0, DC_ENTRIES + 1, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND,
+ entry_x_padding, entry_y_padding);
fields->fileregex = gtk_entry_new();
fields->fileregexstring = build_get_regex(GEANY_GBG_FT, NULL, &src);
- sensitivity = ft==NULL?FALSE:TRUE;
- if (fields->fileregexstring!=NULL && *(fields->fileregexstring)!=NULL)
+ sensitivity = (ft == NULL) ? FALSE : TRUE;
+ if (fields->fileregexstring != NULL && *(fields->fileregexstring) != NULL)
{
gtk_entry_set_text(GTK_ENTRY(fields->fileregex), *(fields->fileregexstring));
- if (src>(gint)dst) sensitivity = FALSE;
+ if (src > (gint)dst)
+ sensitivity = FALSE;
}
- gtk_table_attach(table, fields->fileregex, DC_ENTRIES+1, DC_CLEAR, row, row+1, GTK_FILL,
- GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, fields->fileregex, DC_ENTRIES + 1, DC_CLEAR, row, row + 1, GTK_FILL,
+ GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
clearicon = gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU);
clear = gtk_button_new();
gtk_button_set_image(GTK_BUTTON(clear), clearicon);
- g_signal_connect_swapped((gpointer)clear, "clicked", G_CALLBACK(on_clear_dialog_regex_row),
- (gpointer)(fields->fileregex));
- gtk_table_attach(table, clear, DC_CLEAR, DC_CLEAR+1, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ g_signal_connect_swapped(clear, "clicked",
+ G_CALLBACK(on_clear_dialog_regex_row), (fields->fileregex));
+ gtk_table_attach(table, clear, DC_CLEAR, DC_CLEAR + 1, row, row + 1, GTK_FILL,
+ GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
gtk_widget_set_sensitive(fields->fileregex, sensitivity);
gtk_widget_set_sensitive(clear, sensitivity);
++row;
sep = gtk_hseparator_new();
- gtk_table_attach(table, sep, 0, DC_N_COL, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, sep, 0, DC_N_COL, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND,
+ entry_x_padding, entry_y_padding);
++row;
label = gtk_label_new(_("Non Filetype Commands"));
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- gtk_table_attach(table, label, 0, DC_N_COL, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
- for (++row, cmd=0; cmd<build_groups_count[GEANY_GBG_NON_FT]; ++row,++cmdindex, ++cmd)
- fields->rows[cmdindex] = build_add_dialog_row(doc, table, row, dst, GEANY_GBG_NON_FT, cmd, TRUE);
+ gtk_table_attach(table, label, 0, DC_N_COL, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND,
+ entry_x_padding, entry_y_padding);
+ for (++row, cmd = 0; cmd < build_groups_count[GEANY_GBG_NON_FT]; ++row,++cmdindex, ++cmd)
+ fields->rows[cmdindex] = build_add_dialog_row(
+ doc, table, row, dst, GEANY_GBG_NON_FT, cmd, TRUE);
label = gtk_label_new(_("Error Regular Expression"));
- gtk_table_attach(table, label, 0, DC_ENTRIES+1, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, label, 0, DC_ENTRIES + 1, row, row + 1, GTK_FILL,
+ GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
fields->nonfileregex = gtk_entry_new();
fields->nonfileregexstring = build_get_regex(GEANY_GBG_NON_FT, NULL, &src);
sensitivity = TRUE;
- if (fields->nonfileregexstring!=NULL && *(fields->nonfileregexstring)!=NULL)
+ if (fields->nonfileregexstring != NULL && *(fields->nonfileregexstring) != NULL)
{
gtk_entry_set_text(GTK_ENTRY(fields->nonfileregex), *(fields->nonfileregexstring));
- sensitivity = src>(gint)dst?FALSE:TRUE;
+ sensitivity = src > (gint)dst ? FALSE : TRUE;
}
- gtk_table_attach(table, fields->nonfileregex, DC_ENTRIES+1, DC_CLEAR, row, row+1, GTK_FILL,
- GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, fields->nonfileregex, DC_ENTRIES + 1, DC_CLEAR, row, row + 1, GTK_FILL,
+ GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
clearicon = gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU);
clear = gtk_button_new();
gtk_button_set_image(GTK_BUTTON(clear), clearicon);
- g_signal_connect_swapped((gpointer)clear, "clicked", G_CALLBACK(on_clear_dialog_regex_row),
- (gpointer)(fields->nonfileregex));
- gtk_table_attach(table, clear, DC_CLEAR, DC_CLEAR+1, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ g_signal_connect_swapped(clear, "clicked",
+ G_CALLBACK(on_clear_dialog_regex_row), (fields->nonfileregex));
+ gtk_table_attach(table, clear, DC_CLEAR, DC_CLEAR + 1, row, row + 1, GTK_FILL,
+ GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
gtk_widget_set_sensitive(fields->nonfileregex, sensitivity);
gtk_widget_set_sensitive(clear, sensitivity);
++row;
sep = gtk_hseparator_new();
- gtk_table_attach(table, sep, 0, DC_N_COL, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, sep, 0, DC_N_COL, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND,
+ entry_x_padding, entry_y_padding);
++row;
label = gtk_label_new(_("Execute Commands"));
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- gtk_table_attach(table, label, 0, DC_N_COL, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
- for (++row, cmd=0; cmd<build_groups_count[GEANY_GBG_EXEC]; ++row,++cmdindex, ++cmd)
+ gtk_table_attach(table, label, 0, DC_N_COL, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND,
+ entry_x_padding, entry_y_padding);
+ for (++row, cmd = 0; cmd < build_groups_count[GEANY_GBG_EXEC]; ++row,++cmdindex, ++cmd)
fields->rows[cmdindex] = build_add_dialog_row(doc, table, row, dst, GEANY_GBG_EXEC, cmd, TRUE);
sep = gtk_hseparator_new();
- gtk_table_attach(table, sep, 0, DC_N_COL, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, sep, 0, DC_N_COL, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND,
+ entry_x_padding, entry_y_padding);
++row;
sep = gtk_hseparator_new();
- gtk_table_attach(table, sep, 0, DC_N_COL, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
+ gtk_table_attach(table, sep, 0, DC_N_COL, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND,
+ entry_x_padding, entry_y_padding);
++row;
label = gtk_label_new(_(
"Notes:\n"
" %d, %e, %f, %p are substituted in Commands and Working dir, see manual for details\n"
" Non-filetype menu Item 2 opens a dialog and appends the reponse to the command"));
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- gtk_table_attach(table, label, 0, DC_N_COL, row, row+1, GTK_FILL, GTK_FILL | GTK_EXPAND,
- entry_x_padding, entry_y_padding);
-/* printf("%d extra rows in dialog\n", row-build_items_count); */
+ gtk_table_attach(table, label, 0, DC_N_COL, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND,
+ entry_x_padding, entry_y_padding);
+ /*printf("%d extra rows in dialog\n", row-build_items_count);*/
++row;
*table_data = fields;
return GTK_WIDGET(table);
}
+
void build_free_fields(TableData table_data)
{
gint cmdindex;
- for (cmdindex=0; cmdindex<build_items_count; ++cmdindex)
+ for (cmdindex = 0; cmdindex < build_items_count; ++cmdindex)
g_free(table_data->rows[cmdindex]);
g_free(table_data->rows);
g_free(table_data);
}
+
/* string compare where null pointers match null or 0 length strings */
static int stcmp(const gchar *a, const gchar *b)
{
- if (a==NULL && b==NULL) return 0;
- if (a==NULL && b!=NULL) return strlen(b);
- if (a!=NULL && b==NULL) return strlen(a);
+ if (a == NULL && b == NULL)
+ return 0;
+ if (a == NULL && b != NULL)
+ return strlen(b);
+ if (a != NULL && b == NULL)
+ return strlen(a);
return strcmp(a, b);
}
+
static gboolean read_row(BuildDestination *dst, TableData table_data, gint drow, gint grp, gint cmd)
{
gchar *entries[GEANY_BC_CMDENTRIES_COUNT];
@@ -1858,45 +1931,46 @@
}
if (table_data->rows[drow]->cleared)
{
- if (dst->dst[grp]!=NULL)
+ if (dst->dst[grp] != NULL)
{
- if (*(dst->dst[grp])==NULL)*(dst->dst[grp])=g_new0(GeanyBuildCommand, build_groups_count[grp]);
- (*(dst->dst[grp]))[cmd].exists=FALSE;
- (*(dst->dst[grp]))[cmd].changed=TRUE;
- changed=TRUE;
+ if (*(dst->dst[grp]) == NULL)
+ *(dst->dst[grp]) = g_new0(GeanyBuildCommand, build_groups_count[grp]);
+ (*(dst->dst[grp]))[cmd].exists = FALSE;
+ (*(dst->dst[grp]))[cmd].changed = TRUE;
+ changed = TRUE;
}
}
if (
(
- table_data->rows[drow]->cmdsrc==NULL /* originally there was no content */
+ table_data->rows[drow]->cmdsrc == NULL /* originally there was no content */
&&
(
- strlen(entries[GEANY_BC_LABEL])>0 /* but now one field has some */
- || strlen(entries[GEANY_BC_COMMAND])>0
- || strlen(entries[GEANY_BC_WORKING_DIR])>0
+ strlen(entries[GEANY_BC_LABEL]) > 0 /* but now one field has some */
+ || strlen(entries[GEANY_BC_COMMAND]) > 0
+ || strlen(entries[GEANY_BC_WORKING_DIR]) > 0
)
)
||
(
- table_data->rows[drow]->cmdsrc!=NULL /* originally there was content */
+ table_data->rows[drow]->cmdsrc != NULL /* originally there was content */
&&
( /* and some of it was changed */
- stcmp(entries[GEANY_BC_LABEL], table_data->rows[drow]->cmdsrc->entries[GEANY_BC_LABEL])!=0
- || stcmp(entries[GEANY_BC_COMMAND], table_data->rows[drow]->cmdsrc->entries[GEANY_BC_COMMAND])!=0
+ stcmp(entries[GEANY_BC_LABEL], table_data->rows[drow]->cmdsrc->entries[GEANY_BC_LABEL]) != 0
+ || stcmp(entries[GEANY_BC_COMMAND], table_data->rows[drow]->cmdsrc->entries[GEANY_BC_COMMAND]) != 0
|| stcmp(entries[GEANY_BC_WORKING_DIR],
- table_data->rows[drow]->cmdsrc->entries[GEANY_BC_WORKING_DIR])!=0
+ table_data->rows[drow]->cmdsrc->entries[GEANY_BC_WORKING_DIR]) != 0
)
)
)
{
- if (dst->dst[grp]!=NULL)
+ if (dst->dst[grp] != NULL)
{
- if (*(dst->dst[grp])==NULL)
+ if (*(dst->dst[grp]) == NULL)
*(dst->dst[grp]) = g_new0(GeanyBuildCommand, build_groups_count[grp]);
FOREACH_GEANYBUILDCMD_ENTRY(i)
setptr((*(dst->dst[grp]))[cmd].entries[i], entries[i]);
(*(dst->dst[grp]))[cmd].exists = TRUE;
- (*(dst->dst[grp]))[cmd].changed=TRUE;
+ (*(dst->dst[grp]))[cmd].changed = TRUE;
changed = TRUE;
}
}
@@ -1908,24 +1982,24 @@
return changed;
}
+
static gboolean read_regex(GtkWidget *regexentry, gchar **src, gchar **dst)
{
gboolean changed = FALSE;
gchar *reg = g_strdup(gtk_entry_get_text(GTK_ENTRY(regexentry)));
if (
- (
- ( src==NULL /* originally there was no regex */
- || *src==NULL /* or it was NULL*/
- )
- && strlen(reg)>0 /* and something was typed */
- )
- ||( /* or */
- src!=NULL /* originally there was a regex*/
- && strcmp(*src, reg)!=0 /* and it has been changed */
- )
- )
+ (
+ (src == NULL /* originally there was no regex */
+ || *src == NULL /* or it was NULL*/
+ )
+ && strlen(reg) > 0 /* and something was typed */
+ )
+ ||(src != NULL /* originally there was a regex*/
+ && strcmp(*src, reg) != 0 /* and it has been changed */
+ )
+ )
{
- if (dst!=NULL)
+ if (dst != NULL)
{
setptr(*dst, reg);
changed = TRUE;
@@ -1934,6 +2008,7 @@
return changed;
}
+
gboolean build_read_commands(BuildDestination *dst, TableData table_data, gint response)
{
gint cmdindex, cmd;
@@ -1941,11 +2016,11 @@
if (response == GTK_RESPONSE_ACCEPT)
{
- for (cmdindex=0, cmd=0; cmd<build_groups_count[GEANY_GBG_FT]; ++cmdindex, ++cmd)
+ for (cmdindex = 0, cmd = 0; cmd < build_groups_count[GEANY_GBG_FT]; ++cmdindex, ++cmd)
changed |= read_row(dst, table_data, cmdindex, GEANY_GBG_FT, cmd);
- for (cmd=0; cmd<build_groups_count[GEANY_GBG_NON_FT]; ++cmdindex, ++cmd)
+ for (cmd = 0; cmd < build_groups_count[GEANY_GBG_NON_FT]; ++cmdindex, ++cmd)
changed |= read_row(dst, table_data, cmdindex, GEANY_GBG_NON_FT, cmd);
- for (cmd=0; cmd<build_groups_count[GEANY_GBG_EXEC]; ++cmdindex, ++cmd)
+ for (cmd = 0; cmd < build_groups_count[GEANY_GBG_EXEC]; ++cmdindex, ++cmd)
changed |= read_row(dst, table_data, cmdindex, GEANY_GBG_EXEC, cmd);
changed |= read_regex(table_data->fileregex, table_data->fileregexstring, dst->fileregexstr);
changed |= read_regex(table_data->nonfileregex, table_data->nonfileregexstring, dst->nonfileregexstr);
@@ -1953,7 +2028,8 @@
return changed;
}
-static void show_build_commands_dialog()
+
+static void show_build_commands_dialog(void)
{
GtkWidget *dialog, *table, *vbox;
GeanyDocument *doc = document_get_current();
@@ -1978,7 +2054,7 @@
prefdsts.dst[GEANY_GBG_NON_FT] = &non_ft_pref;
prefdsts.dst[GEANY_GBG_EXEC] = &exec_pref;
- if (ft!=NULL)
+ if (ft != NULL)
{
prefdsts.dst[GEANY_GBG_FT] = &(ft->homefilecmds);
prefdsts.fileregexstr = &(ft->homeerror_regex_string);
@@ -1989,7 +2065,7 @@
prefdsts.fileregexstr = NULL;
}
prefdsts.nonfileregexstr = ®ex_pref;
- if (build_read_commands(&prefdsts, table_data, response) && ft!=NULL)
+ if (build_read_commands(&prefdsts, table_data, response) && ft != NULL)
ft->home_save_needed = TRUE;
build_free_fields(table_data);
@@ -1997,32 +2073,35 @@
gtk_widget_destroy(dialog);
}
+
/* Creates the relevant build menu if necessary. */
BuildMenuItems *build_get_menu_items(gint filetype_idx)
{
BuildMenuItems *items;
items = &menu_items;
- if (items->menu == NULL) create_build_menu(items);
+ if (items->menu == NULL)
+ create_build_menu(items);
return items;
}
+
/* set non_ft working directory entries to %p for project */
void build_set_non_ft_wd_to_proj(TableData table_data)
{
gint i, start, end;
start = build_groups_count[GEANY_GBG_FT];
end = start + build_groups_count[GEANY_GBG_NON_FT];
- for (i = start; i<end; ++i)
+ for (i = start; i < end; ++i)
gtk_entry_set_text(GTK_ENTRY(table_data->rows[i]->entries[GEANY_BC_WORKING_DIR]), "%p");
}
+
/*----------------------------------------------------------
*
* Load and store configuration
*
* ---------------------------------------------------------*/
-
static const gchar *build_grp_name = "build-menu";
/* config format for build-menu group is prefix_gg_nn_xx=value
@@ -2042,16 +2121,18 @@
gint cmd, prefixlen; /* NOTE prefixlen used in macros above */
GeanyBuildCommand *dstcmd;
gchar *key;
- static gchar cmdbuf[3]=" ";
+ static gchar cmdbuf[3] = " ";
- if (*dst==NULL)*dst = g_new0(GeanyBuildCommand, build_groups_count[grp]);
+ if (*dst == NULL)
+ *dst = g_new0(GeanyBuildCommand, build_groups_count[grp]);
dstcmd = *dst;
- prefixlen = prefix==NULL?0:strlen(prefix);
- key = g_strconcat(prefix==NULL?"":prefix, fixedkey, NULL);
- for (cmd=0; cmd<build_groups_count[grp]; ++cmd)
+ prefixlen = prefix == NULL ? 0 : strlen(prefix);
+ key = g_strconcat(prefix == NULL ? "" : prefix, fixedkey, NULL);
+ for (cmd = 0; cmd < build_groups_count[grp]; ++cmd)
{
gchar *label;
- if (cmd<0 || cmd>=100)return; /* ensure no buffer overflow */
+ if (cmd < 0 || cmd >= 100)
+ return; /* ensure no buffer overflow */
sprintf(cmdbuf, "%02d", cmd);
set_key_grp(key, groups[grp]);
set_key_cmd(key, cmdbuf);
@@ -2060,7 +2141,7 @@
label = g_key_file_get_locale_string(config, build_grp_name, key, NULL, NULL);
else
label = g_key_file_get_string(config, build_grp_name, key, NULL);
- if (label!=NULL)
+ if (label != NULL)
{
dstcmd[cmd].exists = TRUE;
setptr(dstcmd[cmd].entries[GEANY_BC_LABEL], label);
@@ -2076,11 +2157,12 @@
g_free(key);
}
+
/* for the specified source load new format build menu items or try to make some sense of
* old format setings, not done perfectly but better than ignoring them */
void build_load_menu(GKeyFile *config, GeanyBuildSource src, gpointer p)
{
-/* gint grp;*/
+ /*gint grp;*/
GeanyFiletype *ft;
GeanyProject *pj;
gchar **ftlist;
@@ -2093,7 +2175,8 @@
{
case GEANY_BCS_FT:
ft = (GeanyFiletype*)p;
- if (ft==NULL)return;
+ if (ft == NULL)
+ return;
build_load_menu_grp(config, &(ft->filecmds), GEANY_GBG_FT, NULL, TRUE);
build_load_menu_grp(config, &(ft->ftdefcmds), GEANY_GBG_NON_FT, NULL, TRUE);
build_load_menu_grp(config, &(ft->execcmds), GEANY_GBG_EXEC, NULL, TRUE);
@@ -2102,7 +2185,8 @@
break;
case GEANY_BCS_HOME_FT:
ft = (GeanyFiletype*)p;
- if (ft==NULL)return;
+ if (ft == NULL)
+ return;
build_load_menu_grp(config, &(ft->homefilecmds), GEANY_GBG_FT, NULL, FALSE);
build_load_menu_grp(config, &(ft->homeexeccmds), GEANY_GBG_EXEC, NULL, FALSE);
setptr(ft->homeerror_regex_string,
@@ -2118,17 +2202,19 @@
build_load_menu_grp(config, &exec_proj, GEANY_GBG_EXEC, NULL, FALSE);
setptr(regex_proj, g_key_file_get_string(config, build_grp_name, "error_regex", NULL));
pj = (GeanyProject*)p;
- if (p==NULL)return;
+ if (p == NULL)
+ return;
ftlist = g_key_file_get_string_list(config, build_grp_name, "filetypes", NULL, NULL);
- if (ftlist!=NULL)
+ if (ftlist != NULL)
{
gchar **ftname;
- if (pj->build_filetypes_list==NULL) pj->build_filetypes_list = g_ptr_array_new();
+ if (pj->build_filetypes_list == NULL)
+ pj->build_filetypes_list = g_ptr_array_new();
g_ptr_array_set_size(pj->build_filetypes_list, 0);
- for (ftname=ftlist; *ftname!=NULL; ++ftname)
+ for (ftname = ftlist; *ftname != NULL; ++ftname)
{
- ft=filetypes_lookup_by_name(*ftname);
- if (ft!=NULL)
+ ft = filetypes_lookup_by_name(*ftname);
+ if (ft != NULL)
{
gchar *regkey = g_strdup_printf("%serror_regex", *ftname);
g_ptr_array_add(pj->build_filetypes_list, ft);
@@ -2150,7 +2236,7 @@
/* set GeanyBuildCommand if it doesn't already exist and there is a command */
#define ASSIGNIF(type, id, string, value) \
- if (value!=NULL && !type[GBO_TO_CMD(id)].exists && strlen(value)>0) { \
+ if (value != NULL && ! type[GBO_TO_CMD(id)].exists && strlen(value) > 0) { \
type[GBO_TO_CMD(id)].exists = TRUE; \
setptr(type[GBO_TO_CMD(id)].entries[GEANY_BC_LABEL], g_strdup(_(string))); \
setptr(type[GBO_TO_CMD(id)].entries[GEANY_BC_COMMAND], (value)); \
@@ -2163,24 +2249,30 @@
{
case GEANY_BCS_FT:
ft = (GeanyFiletype*)p;
- if (ft->filecmds==NULL)ft->filecmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_FT]);
+ if (ft->filecmds == NULL)
+ ft->filecmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_FT]);
value = g_key_file_get_string(config, "build_settings", "compiler", NULL);
ASSIGNIF(ft->filecmds, GEANY_GBO_COMPILE, "_Compile", value);
value = g_key_file_get_string(config, "build_settings", "linker", NULL);
ASSIGNIF(ft->filecmds, GEANY_GBO_BUILD, "_Build", value);
- if (ft->execcmds==NULL)ft->execcmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_EXEC]);
+ if (ft->execcmds == NULL)
+ ft->execcmds = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_EXEC]);
value = g_key_file_get_string(config, "build_settings", "run_cmd", NULL);
ASSIGNIF(ft->execcmds, GEANY_GBO_EXEC, "_Execute", value);
- if (ft->error_regex_string==NULL)
+ if (ft->error_regex_string == NULL)
ft->error_regex_string = g_key_file_get_string(config, "build_settings", "error_regex", NULL);
break;
case GEANY_BCS_PROJ:
- if (non_ft_proj==NULL)non_ft_proj = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_NON_FT]);
+ if (non_ft_proj == NULL)
+ non_ft_proj = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_NON_FT]);
basedir = project_get_base_path();
- if (basedir==NULL) basedir = g_strdup("%d");
+ if (basedir == NULL)
+ basedir = g_strdup("%d");
bvalue = g_key_file_get_boolean(config, "project", "make_in_base_path", NULL);
- if (bvalue) makebasedir = g_strdup(basedir);
- else makebasedir = g_strdup("%d");
+ if (bvalue)
+ makebasedir = g_strdup(basedir);
+ else
+ makebasedir = g_strdup("%d");
if (non_ft_pref[GBO_TO_CMD(GEANY_GBO_MAKE_ALL)].old)
setptr(non_ft_pref[GBO_TO_CMD(GEANY_GBO_MAKE_ALL)].entries[GEANY_BC_WORKING_DIR], g_strdup(makebasedir));
if (non_ft_pref[GBO_TO_CMD(GEANY_GBO_CUSTOM)].old)
@@ -2188,10 +2280,11 @@
if (non_ft_pref[GBO_TO_CMD(GEANY_GBO_MAKE_OBJECT)].old)
setptr(non_ft_pref[GBO_TO_CMD(GEANY_GBO_MAKE_OBJECT)].entries[GEANY_BC_WORKING_DIR], g_strdup("%d"));
value = g_key_file_get_string(config, "project", "run_cmd", NULL);
- if (value!=NULL && strlen(value)>0)
+ if (value != NULL && strlen(value) > 0)
{
- if (exec_proj==NULL)exec_proj = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_EXEC]);
- if (!exec_proj[GBO_TO_CMD(GEANY_GBO_EXEC)].exists)
+ if (exec_proj == NULL)
+ exec_proj = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_EXEC]);
+ if (! exec_proj[GBO_TO_CMD(GEANY_GBO_EXEC)].exists)
{
exec_proj[GBO_TO_CMD(GEANY_GBO_EXEC)].exists = TRUE;
setptr(exec_proj[GBO_TO_CMD(GEANY_GBO_EXEC)].entries[GEANY_BC_LABEL], g_strdup(_("_Execute")));
@@ -2204,7 +2297,8 @@
g_free(basedir);
break;
case GEANY_BCS_PREF:
- if (non_ft_pref==NULL)non_ft_pref = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_NON_FT]);
+ if (non_ft_pref == NULL)
+ non_ft_pref = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_NON_FT]);
value = g_key_file_get_string(config, "tools", "make_cmd", NULL);
ASSIGNIF(non_ft_pref, GEANY_GBO_CUSTOM, "Make Custom _Target",
g_strdup_printf("%s ", value));
@@ -2217,22 +2311,25 @@
}
}
+
static gint build_save_menu_grp(GKeyFile *config, GeanyBuildCommand *src, gint grp, gchar *prefix)
{
gint cmd, prefixlen; /* NOTE prefixlen used in macros above */
gchar *key;
- gint count=0;
+ gint count = 0;
enum GeanyBuildCmdEntries i;
- if (src==NULL)return 0;
- prefixlen = prefix==NULL?0:strlen(prefix);
- key = g_strconcat(prefix==NULL?"":prefix, fixedkey, NULL);
- for (cmd=0; cmd<build_groups_count[grp]; ++cmd)
+ if (src == NULL)
+ return 0;
+ prefixlen = prefix == NULL ? 0 : strlen(prefix);
+ key = g_strconcat(prefix == NULL ? "" : prefix, fixedkey, NULL);
+ for (cmd = 0; cmd < build_groups_count[grp]; ++cmd)
{
if (src[cmd].changed)
{
- static gchar cmdbuf[4]=" ";
- if (cmd<0 || cmd>=100)return count; /* ensure no buffer overflow */
+ static gchar cmdbuf[4] = " ";
+ if (cmd < 0 || cmd >= 100)
+ return count; /* ensure no buffer overflow */
sprintf(cmdbuf, "%02d", cmd);
set_key_grp(key, groups[grp]);
set_key_cmd(key, cmdbuf);
@@ -2259,29 +2356,32 @@
return count;
}
+
typedef struct ForEachData
{
GKeyFile *config;
GPtrArray *ft_names;
-}ForEachData;
+} ForEachData;
+
static void foreach_project_filetype(gpointer data, gpointer user_data)
{
- GeanyFiletype *ft = (GeanyFiletype*)data;
- ForEachData *d = (ForEachData*)user_data;
- gint i=0;
+ GeanyFiletype *ft = (GeanyFiletype*) data;
+ ForEachData *d = (ForEachData*) user_data;
+ gint i = 0;
gchar *regkey = g_strdup_printf("%serror_regex", ft->name);
i += build_save_menu_grp(d->config, ft->projfilecmds, GEANY_GBG_FT, ft->name);
- if (ft->projerror_regex_string!=NULL && strlen(ft->projerror_regex_string)>0)
+ if (ft->projerror_regex_string != NULL && strlen(ft->projerror_regex_string) > 0)
{
g_key_file_set_string(d->config, build_grp_name, regkey, ft->projerror_regex_string);
- i+=1;
+ i++;
}
else
g_key_file_remove_key(d->config, build_grp_name,regkey, NULL);
g_free(regkey);
- if (i>0)g_ptr_array_add(d->ft_names, ft->name);
+ if (i > 0)
+ g_ptr_array_add(d->ft_names, ft->name);
}
void build_save_menu(GKeyFile *config, gpointer ptr, GeanyBuildSource src)
@@ -2295,11 +2395,12 @@
{
case GEANY_BCS_HOME_FT:
ft = (GeanyFiletype*)ptr;
- if (ft==NULL)return;
+ if (ft == NULL)
+ return;
build_save_menu_grp(config, ft->homefilecmds, GEANY_GBG_FT, NULL);
build_save_menu_grp(config, ft->homeexeccmds, GEANY_GBG_EXEC, NULL);
regkey = g_strdup_printf("%serror_regex", ft->name);
- if (ft->homeerror_regex_string!=NULL && strlen(ft->homeerror_regex_string)>0)
+ if (ft->homeerror_regex_string != NULL && strlen(ft->homeerror_regex_string) > 0)
g_key_file_set_string(config, build_grp_name, regkey, ft->projerror_regex_string);
else
g_key_file_remove_key(config, build_grp_name,regkey, NULL);
@@ -2308,7 +2409,7 @@
case GEANY_BCS_PREF:
build_save_menu_grp(config, non_ft_pref, GEANY_GBG_NON_FT, NULL);
build_save_menu_grp(config, exec_pref, GEANY_GBG_EXEC, NULL);
- if (regex_pref!=NULL && strlen(regex_pref)>0)
+ if (regex_pref != NULL && strlen(regex_pref) > 0)
g_key_file_set_string(config, build_grp_name, "error_regex", regex_pref);
else
g_key_file_remove_key(config, build_grp_name, "error_regex", NULL);
@@ -2317,16 +2418,16 @@
pj = (GeanyProject*)ptr;
build_save_menu_grp(config, non_ft_proj, GEANY_GBG_NON_FT, NULL);
build_save_menu_grp(config, exec_proj, GEANY_GBG_EXEC, NULL);
- if (regex_proj!=NULL && strlen(regex_proj)>0)
+ if (regex_proj != NULL && strlen(regex_proj) > 0)
g_key_file_set_string(config, build_grp_name, "error_regex", regex_proj);
else
g_key_file_remove_key(config, build_grp_name, "error_regex", NULL);
- if (pj->build_filetypes_list!=NULL)
+ if (pj->build_filetypes_list != NULL)
{
data.config = config;
data.ft_names = g_ptr_array_new();
g_ptr_array_foreach(pj->build_filetypes_list, foreach_project_filetype, (gpointer)(&data));
- if (data.ft_names->pdata!=NULL)
+ if (data.ft_names->pdata != NULL)
g_key_file_set_string_list(config, build_grp_name, "filetypes",
(const gchar**)(data.ft_names->pdata), data.ft_names->len);
else
@@ -2339,21 +2440,26 @@
}
}
+
void build_set_group_count(GeanyBuildGroup grp, gint count)
{
gint i, sum;
if (count>build_groups_count[grp])
- build_groups_count[grp]=count;
- for (i=0, sum=0; i<GEANY_GBG_COUNT; ++i)sum+=build_groups_count[i];
+ build_groups_count[grp] = count;
+ for (i = 0, sum = 0; i < GEANY_GBG_COUNT; ++i)
+ sum += build_groups_count[i];
build_items_count = sum;
}
+
gint build_get_group_count(GeanyBuildGroup grp)
{
return build_groups_count[grp];
}
-static struct {
+
+static struct
+{
gchar *entries[GEANY_BC_CMDENTRIES_COUNT];
GeanyBuildCommand **ptr;
gint index;
@@ -2365,6 +2471,7 @@
{ {NULL, NULL, NULL}, NULL, 0 }
};
+
void build_init(void)
{
GtkWidget *item;
@@ -2375,7 +2482,7 @@
non_ft_def = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_NON_FT]);
exec_def = g_new0(GeanyBuildCommand, build_groups_count[GEANY_GBG_EXEC]);
run_info = g_new0(RunInfo, build_groups_count[GEANY_GBG_EXEC]);
- for (cmdindex=0; default_cmds[cmdindex].entries[GEANY_BC_COMMAND] != NULL; ++cmdindex)
+ for (cmdindex = 0; default_cmds[cmdindex].entries[GEANY_BC_COMMAND] != NULL; ++cmdindex)
{
enum GeanyBuildCmdEntries k;
GeanyBuildCommand *cmd = &((*(default_cmds[cmdindex].ptr))[ default_cmds[cmdindex].index ]);
@@ -2386,7 +2493,6 @@
}
}
-
/* create the toolbar Build item sub menu */
toolmenu = gtk_menu_new();
g_object_ref(toolmenu);
Modified: trunk/src/build.h
===================================================================
--- trunk/src/build.h 2009-09-06 16:50:04 UTC (rev 4158)
+++ trunk/src/build.h 2009-09-06 16:50:20 UTC (rev 4159)
@@ -140,13 +140,15 @@
gboolean old; /**< Converted from old format. */
} GeanyBuildCommand;
-extern GeanyBuildCommand *non_ft_proj, *exec_proj; /* project command array pointers */
+/* project command array pointers */
+extern GeanyBuildCommand *non_ft_proj;
+extern GeanyBuildCommand *exec_proj;
extern gchar *regex_proj; /* project non-fileregex string */
typedef struct BuildMenuItems
{
GtkWidget *menu;
- GtkWidget **menu_item[GEANY_GBG_COUNT+1]; /* +1 for fixed items */
+ GtkWidget **menu_item[GEANY_GBG_COUNT + 1]; /* +1 for fixed items */
} BuildMenuItems;
/* a structure defining the destinations for a set of groups of commands & regex */
@@ -165,11 +167,11 @@
void build_finalize(void);
/* menu configuration dialog functions */
-GtkWidget *build_commands_table( GeanyDocument *doc, GeanyBuildSource dst, TableData *data, GeanyFiletype *ft );
+GtkWidget *build_commands_table(GeanyDocument *doc, GeanyBuildSource dst, TableData *data, GeanyFiletype *ft);
-gboolean build_read_commands( BuildDestination *dst, TableData data, gint response );
+gboolean build_read_commands(BuildDestination *dst, TableData data, gint response);
-void build_free_fields( TableData data );
+void build_free_fields(TableData data);
void build_set_non_ft_wd_to_proj(TableData table_data);
@@ -256,9 +258,9 @@
BuildMenuItems *build_get_menu_items(gint filetype_idx);
/* load and store menu configuration */
-void build_load_menu( GKeyFile *config, GeanyBuildSource dst, gpointer ptr);
+void build_load_menu(GKeyFile *config, GeanyBuildSource dst, gpointer ptr);
-void build_save_menu( GKeyFile *config, gpointer ptr, GeanyBuildSource src);
+void build_save_menu(GKeyFile *config, gpointer ptr, GeanyBuildSource src);
void build_set_group_count(GeanyBuildGroup grp, gint count);
Modified: trunk/src/project.c
===================================================================
--- trunk/src/project.c 2009-09-06 16:50:04 UTC (rev 4158)
+++ trunk/src/project.c 2009-09-06 16:50:20 UTC (rev 4159)
@@ -63,7 +63,7 @@
static struct
{
gchar *project_file_path; /* in UTF-8 */
-} local_prefs = {NULL};
+} local_prefs = { NULL };
static gboolean entries_modified;
@@ -109,7 +109,8 @@
PropertyDialogElements *e;
gint response;
- if (! project_ask_close()) return;
+ if (! project_ask_close())
+ return;
g_return_if_fail(app->project == NULL);
@@ -324,7 +325,7 @@
static void remove_foreach_project_filetype( gpointer data, gpointer user_data )
{
GeanyFiletype *ft = (GeanyFiletype*)data;
- if (ft!=NULL)
+ if (ft != NULL)
{
setptr( ft->projfilecmds, NULL);
setptr(ft->projerror_regex_string, NULL);
@@ -332,6 +333,7 @@
}
}
+
/* open_default will make function reload default session files on close */
void project_close(gboolean open_default)
{
@@ -343,15 +345,15 @@
write_config(FALSE);
/* remove project filetypes build entries */
- if (app->project->build_filetypes_list!=NULL)
+ if (app->project->build_filetypes_list != NULL)
{
- g_ptr_array_foreach( app->project->build_filetypes_list, remove_foreach_project_filetype, NULL );
+ g_ptr_array_foreach( app->project->build_filetypes_list, remove_foreach_project_filetype, NULL);
g_ptr_array_free(app->project->build_filetypes_list, FALSE);
}
/* remove project non filetype build menu items */
- build_remove_menu_item( GEANY_BCS_PROJ, GEANY_GBG_NON_FT, -1 );
- build_remove_menu_item( GEANY_BCS_PROJ, GEANY_GBG_EXEC, -1 );
+ build_remove_menu_item(GEANY_BCS_PROJ, GEANY_GBG_NON_FT, -1);
+ build_remove_menu_item(GEANY_BCS_PROJ, GEANY_GBG_EXEC, -1);
/* remove project regexen */
setptr(regex_proj, NULL);
@@ -383,13 +385,13 @@
update_ui();
}
-static void on_set_use_base_path_clicked( GtkWidget *unused1, gpointer user_data )
+
+static void on_set_use_base_path_clicked(GtkWidget *unused1, gpointer user_data)
{
- TableData td = (TableData)user_data;
-
- build_set_non_ft_wd_to_proj(td);
+ build_set_non_ft_wd_to_proj((TableData)user_data);
}
+
static void create_properties_dialog(PropertyDialogElements *e)
{
GtkWidget *table, *notebook, *build_table;
@@ -733,7 +735,8 @@
setptr(p->description, g_strdup(gtk_text_buffer_get_text(buffer, &start, &end, FALSE)));
/* read the project build menu */
- if ( doc!=NULL )ft=doc->file_type;
+ if ( doc!=NULL )
+ ft = doc->file_type;
if ( ft!=NULL )
{
menu_dst.dst[GEANY_GBG_FT] = &(ft->projfilecmds);
@@ -750,9 +753,10 @@
menu_dst.dst[GEANY_GBG_EXEC] = &exec_proj;
menu_dst.nonfileregexstr = ®ex_proj;
build_read_commands( &menu_dst, e->build_properties, GTK_RESPONSE_ACCEPT );
- if (ft!=NULL && ft->projfilecmds!=oldvalue && ft->project_list_entry<0)
+ if (ft != NULL && ft->projfilecmds != oldvalue && ft->project_list_entry < 0)
{
- if (p->build_filetypes_list==NULL)p->build_filetypes_list = g_ptr_array_new();
+ if (p->build_filetypes_list == NULL)
+ p->build_filetypes_list = g_ptr_array_new();
ft->project_list_entry = p->build_filetypes_list->len;
g_ptr_array_add(p->build_filetypes_list, ft);
}
@@ -813,8 +817,7 @@
g_free(locale_dir);
}
}
- else
- if (gtk_file_chooser_get_action(GTK_FILE_CHOOSER(dialog)) != GTK_FILE_CHOOSER_ACTION_OPEN)
+ else if (gtk_file_chooser_get_action(GTK_FILE_CHOOSER(dialog)) != GTK_FILE_CHOOSER_ACTION_OPEN)
{
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), utf8_filename);
}
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