mirror of
https://github.com/cryb-to/cryb-to.git
synced 2025-01-03 02:11:10 +00:00
Use wstring throughout (except internally in struct cpe_name).
Add a typedef for struct cpe_name and use it throughout. Fix inverted logic in cpe_upgrade().
This commit is contained in:
parent
a587a25d45
commit
e4dd25fa79
5 changed files with 48 additions and 33 deletions
|
@ -65,18 +65,25 @@ enum cpe23_attributes {
|
|||
cpe23_nattr
|
||||
};
|
||||
|
||||
struct cpe_name {
|
||||
typedef struct cpe_name {
|
||||
int ver;
|
||||
int nattr;
|
||||
wchar_t *attr[];
|
||||
};
|
||||
} cpe_name;
|
||||
|
||||
struct cpe_name *cpe_upgrade(const struct cpe_name *);
|
||||
struct cpe_name *cpe_from_string(const wchar_t *);
|
||||
wchar_t *cpe_to_string(const struct cpe_name *);
|
||||
struct cpe_name *cpe_from_string(const wchar_t *);
|
||||
wchar_t *cpe_to_string(const struct cpe_name *);
|
||||
struct cpe_name *cpe_from_string(const wchar_t *);
|
||||
wchar_t *cpe_to_string(const struct cpe_name *);
|
||||
cpe_name *cpe_new(void);
|
||||
void cpe_destroy(cpe_name *);
|
||||
cpe_name *cpe_clone(const cpe_name *);
|
||||
|
||||
cpe_name *cpe_upgrade(const cpe_name *);
|
||||
|
||||
cpe_name *cpe_unbind_fs(const wstring *);
|
||||
wstring *cpe_bind_to_fs(const cpe_name *);
|
||||
|
||||
cpe_name *cpe_unbind_uri(const wstring *);
|
||||
wstring *cpe_bind_to_uri(const cpe_name *);
|
||||
|
||||
cpe_name *cpe_from_wfn(const wchar_t *);
|
||||
wchar_t *cpe_to_wfn(const cpe_name *);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -30,15 +30,17 @@
|
|||
#include "cryb/impl.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <wchar.h>
|
||||
|
||||
#include <cryb/wstring.h>
|
||||
#include <cryb/cpe.h>
|
||||
|
||||
/*
|
||||
* Free all memory allocated to a cpe structure.
|
||||
*/
|
||||
void
|
||||
cpe_destroy(struct cpe_name *cpe)
|
||||
cpe_destroy(cpe_name *cpe)
|
||||
{
|
||||
|
||||
if (cpe == NULL)
|
||||
|
@ -54,7 +56,7 @@ cpe_destroy(struct cpe_name *cpe)
|
|||
* corresponding attribute in the destination will be an empty string.
|
||||
*/
|
||||
static int
|
||||
cpe_copy_attr(struct cpe_name *dst, const struct cpe_name *src, int base, int nattr)
|
||||
cpe_copy_attr(cpe_name *dst, const cpe_name *src, int base, int nattr)
|
||||
{
|
||||
|
||||
if (base < 0 || nattr < 0 || base + nattr > src->nattr ||
|
||||
|
@ -77,10 +79,10 @@ cpe_copy_attr(struct cpe_name *dst, const struct cpe_name *src, int base, int na
|
|||
* Duplicate a cpe structure. Any attributes that are NULL in the source
|
||||
* will be empty strings in the destination.
|
||||
*/
|
||||
struct cpe_name *
|
||||
cpe_clone(const struct cpe_name *cpe)
|
||||
cpe_name *
|
||||
cpe_clone(const cpe_name *cpe)
|
||||
{
|
||||
struct cpe_name *ncpe;
|
||||
cpe_name *ncpe;
|
||||
|
||||
ncpe = calloc(1, sizeof *ncpe +
|
||||
cpe->nattr * sizeof *ncpe->attr);
|
||||
|
@ -96,10 +98,10 @@ cpe_clone(const struct cpe_name *cpe)
|
|||
/*
|
||||
* Allocate a new cpe structure.
|
||||
*/
|
||||
struct cpe_name *
|
||||
cpe_name *
|
||||
cpe_new(void)
|
||||
{
|
||||
struct cpe_name *ncpe;
|
||||
cpe_name *ncpe;
|
||||
|
||||
if ((ncpe = calloc(1, sizeof *ncpe)) == NULL)
|
||||
return (NULL);
|
||||
|
@ -111,10 +113,10 @@ cpe_new(void)
|
|||
/*
|
||||
* Upgrade a cpe 2.2 structure to the latest supported version.
|
||||
*/
|
||||
struct cpe_name *
|
||||
cpe_upgrade22(const struct cpe_name *cpe)
|
||||
cpe_name *
|
||||
cpe_upgrade22(const cpe_name *cpe)
|
||||
{
|
||||
struct cpe_name *ncpe;
|
||||
cpe_name *ncpe;
|
||||
|
||||
if ((ncpe = cpe_new()) == NULL)
|
||||
return (NULL);
|
||||
|
@ -140,15 +142,15 @@ cpe_upgrade22(const struct cpe_name *cpe)
|
|||
/*
|
||||
* Upgrade a cpe structure to the latest supported version.
|
||||
*/
|
||||
struct cpe_name *
|
||||
cpe_upgrade(const struct cpe_name *cpe)
|
||||
cpe_name *
|
||||
cpe_upgrade(const cpe_name *cpe)
|
||||
{
|
||||
|
||||
switch (cpe->ver) {
|
||||
case cpe22_ver:
|
||||
case cpe23_ver:
|
||||
/* already latest */
|
||||
return (cpe_clone(cpe));
|
||||
case cpe23_ver:
|
||||
case cpe22_ver:
|
||||
return (cpe_upgrade22(cpe));
|
||||
default:
|
||||
return (NULL);
|
||||
|
|
|
@ -29,20 +29,22 @@
|
|||
|
||||
#include "cryb/impl.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <wchar.h>
|
||||
|
||||
#include <cryb/wstring.h>
|
||||
#include <cryb/cpe.h>
|
||||
|
||||
struct cpe *
|
||||
cpe_unbind_fs(const wchar_t *str)
|
||||
cpe_name *
|
||||
cpe_unbind_fs(const wstring *str)
|
||||
{
|
||||
|
||||
(void)str;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
wchar_t *
|
||||
cpe_bind_to_fs(const struct cpe *cpe)
|
||||
wstring *
|
||||
cpe_bind_to_fs(const cpe_name *cpe)
|
||||
{
|
||||
|
||||
(void)cpe;
|
||||
|
|
|
@ -29,20 +29,22 @@
|
|||
|
||||
#include "cryb/impl.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <wchar.h>
|
||||
|
||||
#include <cryb/wstring.h>
|
||||
#include <cryb/cpe.h>
|
||||
|
||||
struct cpe *
|
||||
cpe_unbind_uri(const wchar_t *str)
|
||||
cpe_name *
|
||||
cpe_unbind_uri(const wstring *str)
|
||||
{
|
||||
|
||||
(void)str;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
wchar_t *
|
||||
cpe_bind_to_uri(const struct cpe *cpe)
|
||||
wstring *
|
||||
cpe_bind_to_uri(const cpe_name *cpe)
|
||||
{
|
||||
|
||||
(void)cpe;
|
||||
|
|
|
@ -29,11 +29,13 @@
|
|||
|
||||
#include "cryb/impl.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <wchar.h>
|
||||
|
||||
#include <cryb/wstring.h>
|
||||
#include <cryb/cpe.h>
|
||||
|
||||
struct cpe *
|
||||
cpe_name *
|
||||
cpe_from_wfn(const wchar_t *str)
|
||||
{
|
||||
|
||||
|
@ -42,7 +44,7 @@ cpe_from_wfn(const wchar_t *str)
|
|||
}
|
||||
|
||||
wchar_t *
|
||||
cpe_to_wfn(const struct cpe *cpe)
|
||||
cpe_to_wfn(const cpe_name *cpe)
|
||||
{
|
||||
|
||||
(void)cpe;
|
||||
|
|
Loading…
Reference in a new issue