⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 history.c

📁 飞漫公司的minigui的1.6.8收费增值版本的demon等示例程序
💻 C
字号:
/* * File: history.c * * Copyright (C) 2001, 2002 Jorge Arellano Cid <jcid@dillo.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. *//* * Linear history (it also provides indexes for the navigation stack) */#include <stdlib.h>#include "list.h"#include "history.h"typedef struct {   DilloUrl *url;   gchar *title;} H_Item;/* Global history list */static H_Item *history = NULL;static gint history_size = 0;        /* [1 based] */static gint history_size_max = 16;/* * Add a new H_Item at the end of the history list * (taking care of not making a duplicate entry) */int a_History_add_url(DilloUrl *url){   gint i, idx;   for (i = 0; i < history_size; ++i)      if (a_Url_cmp(history[i].url, url) == 0)         return i;   idx = history_size;   a_List_add(history, history_size, history_size_max);   history[idx].url = a_Url_dup(url);   history[idx].title = NULL;   ++history_size;   return idx;}/* * Set the page-title for a given URL (by idx) * (this is known when the first chunks of HTML data arrive) */int a_History_set_title(gint idx, const gchar *title){   g_return_val_if_fail(idx >= 0 && idx < history_size, 0);   g_free(history[idx].title);   history[idx].title = g_strdup(title);   return 1;}/* * Return the DilloUrl camp (by index) */DilloUrl *a_History_get_url(gint idx){   g_return_val_if_fail(idx >= 0 && idx < history_size, NULL);   return history[idx].url;}/* * Return the title camp (by index) */const gchar *a_History_get_title(gint idx){   g_return_val_if_fail(idx >= 0 && idx < history_size, NULL);   if (history[idx].title)      return history[idx].title;   else      return URL_STR_(history[idx].url);}/* * Return the title camp (by url) * ('force' returns URL_STR when there's no title) */const gchar *a_History_get_title_by_url(DilloUrl *url, gint force){   gint i;   g_return_val_if_fail(url != NULL, NULL);   for (i = 0; i < history_size; ++i)      if (a_Url_cmp(url, history[i].url) == 0)         break;   if (i < history_size && history[i].title)      return history[i].title;   else if (force)      return URL_STR_(url);   return NULL;}/* * Free all the memory used by this module */void a_History_free(){   gint i;   for (i = 0; i < history_size; ++i) {      a_Url_free(history[i].url);      g_free(history[i].title);   }   g_free(history);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -