summaryrefslogtreecommitdiffstats
path: root/gtk/src/callbacks.c
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2009-08-06 23:00:08 +0000
committerjstebbins <[email protected]>2009-08-06 23:00:08 +0000
commit37928ccabd5066bd35c330609d9f1aea989af301 (patch)
treedbfb8b7fac88ced98535492051f0c7e95edf24fb /gtk/src/callbacks.c
parentbd7f9d53243dde4bd44d50004e0022151b0a2af3 (diff)
LinGui: use a different method of stripping video file name extensions
before the new destination filename is constructed the original files extension is stripped. this new method catches a larger variety of extensions without the need to explicitly list them all. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2749 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'gtk/src/callbacks.c')
-rw-r--r--gtk/src/callbacks.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c
index ab7cb31d8..0d2aa7697 100644
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -599,21 +599,17 @@ set_destination(signal_user_data_t *ud)
static gchar*
get_file_label(const gchar *filename)
{
- static gchar *containers[] =
- {".vob", ".mpg", ".m2ts", ".mkv", ".mp4", ".m4v", ".avi", ".ogm", NULL};
- gchar *base;
- gint ii;
+ gchar *base, *pos, *end;
base = g_path_get_basename(filename);
- for (ii = 0; containers[ii] != NULL; ii++)
+ pos = strrchr(base, '.');
+ if (pos != NULL)
{
- if (g_str_has_suffix(base, containers[ii]))
- {
- gchar *pos;
- pos = strrchr(base, '.');
+ // If the last '.' is within 4 chars of end of name, assume
+ // there is an extension we want to strip.
+ end = &base[strlen(base) - 1];
+ if (end - pos <= 4)
*pos = 0;
- break;
- }
}
return base;
}