Commit 4f7d9852 authored by Gaurav Agrawal's avatar Gaurav Agrawal 🌳 Committed by Alberto Fanjul

Support repository being null

repository can be null, so is not correct to access to its properties without checking it.
parent bdba5b75
Pipeline #89829 passed with stages
in 10 minutes and 47 seconds
......@@ -281,65 +281,69 @@ class Gitg.DiffViewCommitDetails : Gtk.Grid
private string parse_ini_file(string subject_text)
{
string result = subject_text.dup();
GLib.KeyFile file = new GLib.KeyFile();
try
string result = subject_text;
if (config_file!=null)
{
debug ("parsing %s", config_file);
if (file.load_from_file(config_file , GLib.KeyFileFlags.NONE))
try
{
foreach (string group in file.get_groups())
debug ("parsing %s", config_file);
GLib.KeyFile file = new GLib.KeyFile();
if (file.load_from_file(config_file , GLib.KeyFileFlags.NONE))
{
if (group.has_prefix("gitg.custom-link"))
result = subject_text.dup();
foreach (string group in file.get_groups())
{
string custom_link_regexp = file.get_string (group, "regexp");
string custom_link_replacement = file.get_string (group, "replacement");
debug ("found group: %s", custom_link_regexp);
bool custom_color = file.has_key (group, "color");
string color = null;
if (custom_color)
if (group.has_prefix("gitg.custom-link"))
{
string custom_link_color = file.get_string (group, "color");
color = custom_link_color;
}
string custom_link_regexp = file.get_string (group, "regexp");
string custom_link_replacement = file.get_string (group, "replacement");
debug ("found group: %s", custom_link_regexp);
bool custom_color = file.has_key (group, "color");
string color = null;
if (custom_color)
{
string custom_link_color = file.get_string (group, "color");
color = custom_link_color;
}
var custom_regex = new Regex (custom_link_regexp);
try
{
GLib.MatchInfo matchInfo;
var custom_regex = new Regex (custom_link_regexp);
try
{
GLib.MatchInfo matchInfo;
custom_regex.match (subject_text, 0, out matchInfo);
custom_regex.match (subject_text, 0, out matchInfo);
while (matchInfo.matches ())
{
string text = matchInfo.fetch(0);
string link = text.dup();
debug ("found: %s", link);
if (custom_link_replacement != null)
while (matchInfo.matches ())
{
link = custom_regex.replace(link, text.length, 0, custom_link_replacement);
string text = matchInfo.fetch(0);
string link = text.dup();
debug ("found: %s", link);
if (custom_link_replacement != null)
{
link = custom_regex.replace(link, text.length, 0, custom_link_replacement);
}
if (color != null) {
result = result.replace(text, "<a href=\"%s\" title=\"%s\" style=\"color:%s\">%s</a>".printf(link, link, color, text));
} else {
result = result.replace(text, "<a href=\"%s\" title=\"%s\">%s</a>".printf(link, link, text));
}
matchInfo.next();
}
if (color != null) {
result = result.replace(text, "<a href=\"%s\" title=\"%s\" style=\"color:%s\">%s</a>".printf(link, link, color, text));
} else {
result = result.replace(text, "<a href=\"%s\" title=\"%s\">%s</a>".printf(link, link, text));
}
matchInfo.next();
}
}
catch(Error e)
{
catch(Error e)
{
}
}
}
}
} catch (Error e)
{
warning ("Cannot read %s %s", config_file, e.message);
}
} catch (Error e)
{
warning ("Cannot read %s %s", config_file, e.message);
}
return result;
}
private void update_avatar()
......
......@@ -131,8 +131,11 @@ public class Gitg.DiffView : Gtk.Grid
get { return d_repository; }
set {
d_repository = value;
config_file = "%s/.git/config".printf(d_repository.get_workdir().get_path());
d_commit_details.config_file = config_file;
if (d_repository!=null)
{
config_file = "%s/.git/config".printf(d_repository.get_workdir().get_path());
d_commit_details.config_file = config_file;
}
}
}
public bool new_is_workdir { get; set; }
......@@ -593,34 +596,37 @@ public class Gitg.DiffView : Gtk.Grid
private void read_ini_file(Gtk.TextBuffer buffer)
{
GLib.KeyFile file = new GLib.KeyFile();
try
if (config_file != null)
{
if (file.load_from_file(config_file , GLib.KeyFileFlags.NONE))
try
{
foreach (string group in file.get_groups())
GLib.KeyFile file = new GLib.KeyFile();
if (file.load_from_file(config_file , GLib.KeyFileFlags.NONE))
{
if (group.has_prefix("gitg.custom-link"))
foreach (string group in file.get_groups())
{
string custom_link_regexp = file.get_string (group, "regexp");
string custom_link_replacement = file.get_string (group, "replacement");
bool custom_color = file.has_key (group, "color");
Gdk.RGBA color = d_color_link;
if (custom_color)
if (group.has_prefix("gitg.custom-link"))
{
string custom_link_color = file.get_string (group, "color");
color = Gdk.RGBA();
color.parse(custom_link_color);
string custom_link_regexp = file.get_string (group, "regexp");
string custom_link_replacement = file.get_string (group, "replacement");
bool custom_color = file.has_key (group, "color");
Gdk.RGBA color = d_color_link;
if (custom_color)
{
string custom_link_color = file.get_string (group, "color");
color = Gdk.RGBA();
color.parse(custom_link_color);
}
apply_link_tags(buffer, new Regex (custom_link_regexp), custom_link_replacement, color, custom_color, true);
}
apply_link_tags(buffer, new Regex (custom_link_regexp), custom_link_replacement, color, custom_color, true);
}
}
} catch (Error e)
{
warning ("Cannot read %s: %s", config_file, e.message);
}
} catch (Error e)
{
warning ("Cannot read %s: %s", config_file, e.message);
}
}
private void auto_change_expanded(bool expanded)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment