mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Bug 796772 - Receivable Ageing Report invalid URL for Totals column
Use some pointer arithmetic to split the owner guid into a separate string before handing it over to boost::uuid for interpretation
This commit is contained in:
parent
65c8357f53
commit
e068366277
@ -175,7 +175,7 @@ static gboolean
|
|||||||
ownerreportCB (const char *location, const char *label,
|
ownerreportCB (const char *location, const char *label,
|
||||||
gboolean new_window, GNCURLResult * result)
|
gboolean new_window, GNCURLResult * result)
|
||||||
{
|
{
|
||||||
const char *ownerptr;
|
char *ownerptr;
|
||||||
const char *acctptr;
|
const char *acctptr;
|
||||||
GncGUID guid;
|
GncGUID guid;
|
||||||
GncOwner owner;
|
GncOwner owner;
|
||||||
@ -190,10 +190,6 @@ ownerreportCB (const char *location, const char *label,
|
|||||||
|
|
||||||
/* href="...:owner=<owner-type>:guid=<guid>[&acct=<guid>]" */
|
/* href="...:owner=<owner-type>:guid=<guid>[&acct=<guid>]" */
|
||||||
|
|
||||||
acctptr = strchr (location, '&');
|
|
||||||
if (acctptr)
|
|
||||||
acctptr++;
|
|
||||||
|
|
||||||
if (strncmp ("owner=", location, 6) != 0)
|
if (strncmp ("owner=", location, 6) != 0)
|
||||||
{
|
{
|
||||||
result->error_message = g_strdup_printf (_("Badly formed URL %s"),
|
result->error_message = g_strdup_printf (_("Badly formed URL %s"),
|
||||||
@ -201,9 +197,17 @@ ownerreportCB (const char *location, const char *label,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
acctptr = strchr (location, '&');
|
||||||
|
if (acctptr)
|
||||||
|
{
|
||||||
|
ownerptr = g_strndup (location + 6, acctptr - location - 6);
|
||||||
|
acctptr++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ownerptr = g_strdup (location + 6);
|
||||||
|
|
||||||
memset (&owner, 0, sizeof (owner));
|
memset (&owner, 0, sizeof (owner));
|
||||||
|
|
||||||
ownerptr = location + 6;
|
|
||||||
switch (*ownerptr)
|
switch (*ownerptr)
|
||||||
{
|
{
|
||||||
case 'c':
|
case 'c':
|
||||||
@ -220,15 +224,18 @@ ownerreportCB (const char *location, const char *label,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
result->error_message = g_strdup_printf (_("Bad URL: %s"), location);
|
result->error_message = g_strdup_printf (_("Bad URL: %s"), location);
|
||||||
|
g_free (ownerptr);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string_to_guid (ownerptr + 2, &guid))
|
if (!string_to_guid (ownerptr + 2, &guid))
|
||||||
{
|
{
|
||||||
result->error_message = g_strdup_printf (_("Bad URL: %s"), location);
|
result->error_message = g_strdup_printf (_("Bad URL: %s"), location);
|
||||||
|
g_free (ownerptr);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_free (ownerptr);
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user