mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
bug 153, 1066: Add add_bookmark_cp().
This commit is contained in:
parent
d1f2f8df80
commit
1cb81679f4
@ -371,7 +371,9 @@ add_bookmark_item_to_bookmarks(struct bookmark *bm, struct bookmark *root, int p
|
||||
* URL to which the bookmark will point. Must be in UTF-8.
|
||||
* NULL or "" means add a bookmark folder.
|
||||
*
|
||||
* @return the new bookmark, or NULL on error. */
|
||||
* @return the new bookmark, or NULL on error.
|
||||
*
|
||||
* @see add_bookmark_cp() */
|
||||
struct bookmark *
|
||||
add_bookmark(struct bookmark *root, int place, unsigned char *title,
|
||||
unsigned char *url)
|
||||
@ -408,6 +410,56 @@ add_bookmark(struct bookmark *root, int place, unsigned char *title,
|
||||
return bm;
|
||||
}
|
||||
|
||||
/** Add a bookmark to the bookmark list.
|
||||
*
|
||||
* @param root
|
||||
* The folder in which to add the bookmark, or NULL to add it at
|
||||
* top level.
|
||||
* @param place
|
||||
* 0 means add to the top. 1 means add to the bottom.
|
||||
* @param codepage
|
||||
* Codepage of @a title and @a url.
|
||||
* @param title
|
||||
* Title of the bookmark. Must not be NULL.
|
||||
* "-" means add a separator.
|
||||
* @param url
|
||||
* URL to which the bookmark will point.
|
||||
* NULL or "" means add a bookmark folder.
|
||||
*
|
||||
* @return the new bookmark.
|
||||
*
|
||||
* @see add_bookmark() */
|
||||
struct bookmark *
|
||||
add_bookmark_cp(struct bookmark *root, int place, int codepage,
|
||||
unsigned char *title, unsigned char *url)
|
||||
{
|
||||
const int utf8_cp = get_cp_index("UTF-8");
|
||||
struct conv_table *table;
|
||||
unsigned char *utf8_title = NULL;
|
||||
unsigned char *utf8_url = NULL;
|
||||
struct bookmark *bookmark = NULL;
|
||||
|
||||
if (!url)
|
||||
url = "";
|
||||
|
||||
table = get_translation_table(codepage, utf8_cp);
|
||||
if (!table)
|
||||
return NULL;
|
||||
|
||||
utf8_title = convert_string(table, title, strlen(title),
|
||||
utf8_cp, CSM_NONE,
|
||||
NULL, NULL, NULL);
|
||||
utf8_url = convert_string(table, url, strlen(url),
|
||||
utf8_cp, CSM_NONE,
|
||||
NULL, NULL, NULL);
|
||||
if (utf8_title && utf8_url)
|
||||
bookmark = add_bookmark(root, place,
|
||||
utf8_title, utf8_url);
|
||||
mem_free_if(utf8_title);
|
||||
mem_free_if(utf8_url);
|
||||
return bookmark;
|
||||
}
|
||||
|
||||
/* Updates an existing bookmark.
|
||||
*
|
||||
* If there's any problem, return 0. Otherwise, return 1.
|
||||
|
@ -45,6 +45,8 @@ int bookmarks_are_dirty(void);
|
||||
|
||||
void delete_bookmark(struct bookmark *);
|
||||
struct bookmark *add_bookmark(struct bookmark *, int, unsigned char *, unsigned char *);
|
||||
struct bookmark *add_bookmark_cp(struct bookmark *, int, int,
|
||||
unsigned char *, unsigned char *);
|
||||
struct bookmark *get_bookmark_by_name(struct bookmark *folder,
|
||||
unsigned char *title);
|
||||
struct bookmark *get_bookmark(unsigned char *url);
|
||||
|
Loading…
Reference in New Issue
Block a user