r10633 chris_y - /trunk/netsurf/amiga/dist/Install
by netsurf@semichrome.net
Author: chris_y
Date: Tue Jul 13 18:07:38 2010
New Revision: 10633
URL: http://source.netsurf-browser.org?rev=10633&view=rev
Log:
Fix first time installs in novice mode so the files end up in a directory rather than
the root of whichever volume Installer decided to pick.
Modified:
trunk/netsurf/amiga/dist/Install
Modified: trunk/netsurf/amiga/dist/Install
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/dist/Install?rev=10...
==============================================================================
--- trunk/netsurf/amiga/dist/Install (original)
+++ trunk/netsurf/amiga/dist/Install Tue Jul 13 18:07:38 2010
@@ -245,6 +245,22 @@
(set @default-dest (getenv "AppPaths/NetSurf"))
+; If env-var did not exist, this is a first time install.
+; For novice users we must take care to put the files somewhere sensible.
+(if (= @default-dest "")
+ (
+ ; Workaround for Installer bug picking TEXTCLIP: as a sensible location
+ (if (= @default-dest "TextClip:") (set @default-dest "SYS:Utilities"))
+
+ (if (= @user-level 0)
+ (
+ (makedir (tackon @default-dest "NetSurf") (infos))
+ (set @default-dest (tackon @default-dest "NetSurf"))
+ )
+ )
+ )
+)
+
(set @default-dest
(askdir
(prompt "Where would you like to install NetSurf?\n"
12 years, 6 months
r10632 chris_y - /trunk/netsurf/render/directory.c
by netsurf@semichrome.net
Author: chris_y
Date: Tue Jul 13 17:32:03 2010
New Revision: 10632
URL: http://source.netsurf-browser.org?rev=10632&view=rev
Log:
Move directory text into type column
Modified:
trunk/netsurf/render/directory.c
Modified: trunk/netsurf/render/directory.c
URL: http://source.netsurf-browser.org/trunk/netsurf/render/directory.c?rev=10...
==============================================================================
--- trunk/netsurf/render/directory.c (original)
+++ trunk/netsurf/render/directory.c Tue Jul 13 17:32:03 2010
@@ -124,7 +124,7 @@
if(up[strlen(up) - 1] == '/') up[strlen(up) - 1] = '\0';
snprintf(buffer, sizeof(buffer),
"<tr bgcolor=\"#CCCCFF\"><td><b><a href=\"%s\">%s</a></td>" \
- "<td>%s</td><td> </td><td> </td></tr>\n",
+ "<td> </td><td> </td><td>%s</td></tr>\n",
up, messages_get("FileParent"), messages_get("FileDirectory"));
binding_parse_chunk(c->data.html.parser_binding,
@@ -190,12 +190,12 @@
if(S_ISDIR(filestat.st_mode)) {
snprintf(buffer, sizeof(buffer),
- "<td>%s</td><td>%s</td><td> </td>\n",
- messages_get("FileDirectory"), modtime);
+ "<td> </td><td>%s</td><td>%s</td>\n",
+ modtime, messages_get("FileDirectory"));
}
else {
snprintf(buffer, sizeof(buffer),
- "<td>%d</td><td>%s</td><td>%s</td>\n",
+ "<td>%ld</td><td>%s</td><td>%s</td>\n",
filestat.st_size, modtime, mimetype);
}
}
12 years, 6 months
r10631 chris_y - in /trunk/netsurf: !NetSurf/Resources/de/Messages !NetSurf/Resources/en/Messages !NetSurf/Resources/fr/Messages !NetSurf/Resources/it/Messages !NetSurf/Resources/nl/Messages render/directory.c
by netsurf@semichrome.net
Author: chris_y
Date: Tue Jul 13 14:44:51 2010
New Revision: 10631
URL: http://source.netsurf-browser.org?rev=10631&view=rev
Log:
Improved directory browser
Modified:
trunk/netsurf/!NetSurf/Resources/de/Messages
trunk/netsurf/!NetSurf/Resources/en/Messages
trunk/netsurf/!NetSurf/Resources/fr/Messages
trunk/netsurf/!NetSurf/Resources/it/Messages
trunk/netsurf/!NetSurf/Resources/nl/Messages
trunk/netsurf/render/directory.c
Modified: trunk/netsurf/!NetSurf/Resources/de/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/de/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/de/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/de/Messages Tue Jul 13 14:44:51 2010
@@ -650,6 +650,15 @@
Encoding1:ermittelt
Encoding2:aus <meta>
EncodingUnk:Unbekannt
+
+# Directory browser
+#
+FileParent:^ Up one level
+FileDirectory:Directory
+FileName:Name
+FileSize:Size
+FileDate:Date
+FileType:Type
# Misc
#
Modified: trunk/netsurf/!NetSurf/Resources/en/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/en/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/en/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/en/Messages Tue Jul 13 14:44:51 2010
@@ -654,6 +654,15 @@
Encoding1:detected
Encoding2:from <meta>
EncodingUnk:Unknown
+
+# Directory browser
+#
+FileParent:^ Up one level
+FileDirectory:Directory
+FileName:Name
+FileSize:Size
+FileDate:Date
+FileType:Type
# Misc
#
Modified: trunk/netsurf/!NetSurf/Resources/fr/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/fr/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/fr/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/fr/Messages Tue Jul 13 14:44:51 2010
@@ -650,6 +650,15 @@
Encoding1:détecté
Encoding2:de <meta>
EncodingUnk:Inconnu
+
+# Directory browser
+#
+FileParent:^ Up one level
+FileDirectory:Directory
+FileName:Name
+FileSize:Size
+FileDate:Date
+FileType:Type
# Misc
#
Modified: trunk/netsurf/!NetSurf/Resources/it/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/it/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/it/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/it/Messages Tue Jul 13 14:44:51 2010
@@ -655,6 +655,15 @@
Encoding1:rilevato
Encoding2:da <meta>
EncodingUnk:Sconosciuto
+
+# Directory browser
+#
+FileParent:^ Up one level
+FileDirectory:Directory
+FileName:Name
+FileSize:Size
+FileDate:Date
+FileType:Type
# Misc
#
Modified: trunk/netsurf/!NetSurf/Resources/nl/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/nl/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/nl/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/nl/Messages Tue Jul 13 14:44:51 2010
@@ -650,6 +650,15 @@
Encoding1:detected
Encoding2:from <meta>
EncodingUnk:Unknown
+
+# Directory browser
+#
+FileParent:^ Up one level
+FileDirectory:Directory
+FileName:Name
+FileSize:Size
+FileDate:Date
+FileType:Type
# Misc
#
Modified: trunk/netsurf/render/directory.c
URL: http://source.netsurf-browser.org/trunk/netsurf/render/directory.c?rev=10...
==============================================================================
--- trunk/netsurf/render/directory.c (original)
+++ trunk/netsurf/render/directory.c Tue Jul 13 14:44:51 2010
@@ -1,5 +1,6 @@
/*
* Copyright 2006 Richard Wilson <info(a)tinct.net>
+ * Copyright 2010 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
@@ -29,15 +30,17 @@
#include <sys/stat.h>
#include <time.h>
#include "content/content_protected.h"
+#include "content/fetch.h"
#include "render/directory.h"
#include "render/html.h"
#include "utils/messages.h"
#include "utils/url.h"
+#include "utils/utils.h"
#define MAX_LENGTH 2048
static const char header[] = "<html>\n<head>\n<title>\n";
-static const char footer[] = "</pre>\n</body>\n</html>\n";
+static const char footer[] = "</table>\n</tt>\n</body>\n</html>\n";
bool directory_create(struct content *c, const struct http_parameter *params) {
@@ -62,6 +65,11 @@
url_func_result res;
bool compare;
char *up;
+ struct stat filestat;
+ char *filepath, *mimetype;
+ char modtime[100];
+ bool extendedinfo, evenrow = false;
+ char *bgcolour, *specialtag, *specialendtag;
path = url_to_path(content__get_url(c));
if (!path) {
@@ -92,9 +100,18 @@
}
*cnv = '\0';
snprintf(buffer, sizeof(buffer), "Index of %s</title>\n</head>\n"
- "<body>\n<h1>\nIndex of %s</h1>\n<hr><pre>",
+ "<body>\n<h1>\nIndex of %s</h1>\n<hr><tt><table>",
nice_path, nice_path);
free(nice_path);
+
+ binding_parse_chunk(c->data.html.parser_binding,
+ (uint8_t *) buffer, strlen(buffer));
+
+ snprintf(buffer, sizeof(buffer),
+ "<tr><td><b>%s</b></td><td><b>%s</b></td>" \
+ "<td><b>%s</b></td><td><b>%s</b></td></tr>\n",
+ messages_get("FileName"), messages_get("FileSize"),
+ messages_get("FileDate"), messages_get("FileType"));
binding_parse_chunk(c->data.html.parser_binding,
(uint8_t *) buffer, strlen(buffer));
@@ -106,10 +123,14 @@
if ((res == URL_FUNC_OK) && !compare) {
if(up[strlen(up) - 1] == '/') up[strlen(up) - 1] = '\0';
snprintf(buffer, sizeof(buffer),
- "<a href=\"%s\">[..]</a>\n", up);
+ "<tr bgcolor=\"#CCCCFF\"><td><b><a href=\"%s\">%s</a></td>" \
+ "<td>%s</td><td> </td><td> </td></tr>\n",
+ up, messages_get("FileParent"), messages_get("FileDirectory"));
binding_parse_chunk(c->data.html.parser_binding,
(uint8_t *) buffer, strlen(buffer));
+
+ evenrow = true;
}
free(up);
}
@@ -124,12 +145,73 @@
!strcmp(entry->d_name, ".."))
continue;
- snprintf(buffer, sizeof(buffer), "<a href=\"%s/%s\">%s</a>\n",
- content__get_url(c), entry->d_name,
- entry->d_name);
+ extendedinfo = false;
+
+ if(filepath = malloc(strlen(path) + strlen(entry->d_name) + 2)) {
+ strcpy(filepath, path);
+ if(path_add_part(filepath,
+ (strlen(path) + strlen(entry->d_name) + 2),
+ entry->d_name)) {
+ if(stat(filepath, &filestat) == 0) {
+ mimetype = fetch_mimetype(filepath);
+ extendedinfo = true;
+ }
+ }
+ free(filepath);
+ }
+
+ if((extendedinfo == true) && (S_ISDIR(filestat.st_mode))) {
+ specialtag = "<b>";
+ specialendtag = "</b>";
+ }
+ else {
+ specialtag = "";
+ specialendtag = "";
+ }
+
+ if(evenrow == false) bgcolour = "CCCCFF";
+ else bgcolour = "BBBBFF";
+ if(evenrow == false) evenrow = true;
+ else evenrow = false;
+
+ snprintf(buffer, sizeof(buffer),
+ "<tr bgcolor=\"#%s\"><td>%s<a href=\"%s/%s\">%s</a>%s</td>\n",
+ bgcolour, specialtag,
+ content__get_url(c), entry->d_name, entry->d_name,
+ specialendtag);
binding_parse_chunk(c->data.html.parser_binding,
(uint8_t *) buffer, strlen(buffer));
+
+ if(extendedinfo == true) {
+ if(strftime((char *)&modtime, sizeof modtime,
+ "%c", localtime(&filestat.st_mtime)) == 0)
+ strncpy(modtime, "%nbsp;", sizeof modtime);
+
+ if(S_ISDIR(filestat.st_mode)) {
+ snprintf(buffer, sizeof(buffer),
+ "<td>%s</td><td>%s</td><td> </td>\n",
+ messages_get("FileDirectory"), modtime);
+ }
+ else {
+ snprintf(buffer, sizeof(buffer),
+ "<td>%d</td><td>%s</td><td>%s</td>\n",
+ filestat.st_size, modtime, mimetype);
+ }
+ }
+ else {
+ snprintf(buffer, sizeof(buffer),
+ "<td> </td><td> </td><td> </td>\n");
+ }
+
+ binding_parse_chunk(c->data.html.parser_binding,
+ (uint8_t *) buffer, strlen(buffer));
+
+ strncpy(buffer, "</tr>\n", sizeof(buffer));
+ binding_parse_chunk(c->data.html.parser_binding,
+ (uint8_t *) buffer, strlen(buffer));
+
+ if(mimetype) free(mimetype);
}
closedir(parent);
12 years, 6 months
r10630 chris_y - /trunk/netsurf/amiga/misc.c
by netsurf@semichrome.net
Author: chris_y
Date: Sun Jul 11 15:48:06 2010
New Revision: 10630
URL: http://source.netsurf-browser.org?rev=10630&view=rev
Log:
Remove desbug
Modified:
trunk/netsurf/amiga/misc.c
Modified: trunk/netsurf/amiga/misc.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/misc.c?rev=10630&r1...
==============================================================================
--- trunk/netsurf/amiga/misc.c (original)
+++ trunk/netsurf/amiga/misc.c Sun Jul 11 15:48:06 2010
@@ -70,7 +70,8 @@
if (strncmp(url, "localhost", SLEN("localhost")) == 0)
url += SLEN("localhost");
- url += SLEN("/");
+ if (strncmp(url, "/", SLEN("/")) == 0)
+ url += SLEN("/");
url2 = malloc(strlen(url) + 2);
strcpy(url2, url);
@@ -122,7 +123,7 @@
strcpy(r, "file:///");
strcat(r, newpath);
-printf("ptu %s => %s\n",path, r);
+
return r;
}
12 years, 6 months
r10629 chris_y - in /trunk/netsurf: amiga/misc.c render/directory.c
by netsurf@semichrome.net
Author: chris_y
Date: Sun Jul 11 15:42:06 2010
New Revision: 10629
URL: http://source.netsurf-browser.org?rev=10629&view=rev
Log:
Amiga file: URIs now translate the : in device names to / (and back), which conforms
better to the spec (: will still work for compatibility, but may have problems). This
fixes a problem with directory browsing.
Directory parent link now uses the full parent path returned by url_parent instead of
one relative to the current directory.
Modified:
trunk/netsurf/amiga/misc.c
trunk/netsurf/render/directory.c
Modified: trunk/netsurf/amiga/misc.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/misc.c?rev=10629&r1...
==============================================================================
--- trunk/netsurf/amiga/misc.c (original)
+++ trunk/netsurf/amiga/misc.c Sun Jul 11 15:42:06 2010
@@ -59,7 +59,7 @@
char *url_to_path(const char *url)
{
- char *tmps, *unesc;
+ char *tmps, *unesc, *slash, *colon, *url2;
CURL *curl;
if (strncmp(url, "file://", SLEN("file://")) != 0)
@@ -72,25 +72,57 @@
url += SLEN("/");
+ url2 = malloc(strlen(url) + 2);
+ strcpy(url2, url);
+
+ colon = strchr(url2, ':');
+ if(colon == NULL)
+ {
+ if(slash = strchr(url2, '/'))
+ {
+ *slash = ':';
+ }
+ else
+ {
+ int len = strlen(url2);
+ url2[len] = ':';
+ url2[len + 1] = '\0';
+ }
+ }
+
if(curl = curl_easy_init())
{
- unesc = curl_easy_unescape(curl,url,0,NULL);
+ unesc = curl_easy_unescape(curl,url2,0,NULL);
tmps = strdup(unesc);
+ free(url2);
curl_free(unesc);
curl_easy_cleanup(curl);
return tmps;
}
- return strdup((char *)url);
+ return (char *)url2;
}
char *path_to_url(const char *path)
{
- char *r = malloc(strlen(path) + SLEN("file:///") + 1);
+ char *colon = NULL;
+ char *r = NULL;
+ char newpath[1024 + strlen(path)];
+ BPTR lock = 0;
+
+ if(lock = Lock(path, MODE_OLDFILE))
+ {
+ DevNameFromLock(lock, newpath, sizeof newpath, DN_FULLPATH);
+ UnLock(lock);
+ }
+
+ r = malloc(strlen(newpath) + SLEN("file:///") + 1);
+
+ if(colon = strchr(newpath, ':')) *colon = '/';
strcpy(r, "file:///");
- strcat(r, path);
-
+ strcat(r, newpath);
+printf("ptu %s => %s\n",path, r);
return r;
}
Modified: trunk/netsurf/render/directory.c
URL: http://source.netsurf-browser.org/trunk/netsurf/render/directory.c?rev=10...
==============================================================================
--- trunk/netsurf/render/directory.c (original)
+++ trunk/netsurf/render/directory.c Sun Jul 11 15:42:06 2010
@@ -100,11 +100,13 @@
(uint8_t *) buffer, strlen(buffer));
res = url_parent(content__get_url(c), &up);
+
if (res == URL_FUNC_OK) {
res = url_compare(content__get_url(c), up, false, &compare);
if ((res == URL_FUNC_OK) && !compare) {
+ if(up[strlen(up) - 1] == '/') up[strlen(up) - 1] = '\0';
snprintf(buffer, sizeof(buffer),
- "<a href=\"..\">[..]</a>\n");
+ "<a href=\"%s\">[..]</a>\n", up);
binding_parse_chunk(c->data.html.parser_binding,
(uint8_t *) buffer, strlen(buffer));
12 years, 6 months
r10628 chris_y - in /trunk/netsurf/amiga: arexx.c dist/NetSurf.guide
by netsurf@semichrome.net
Author: chris_y
Date: Sun Jul 11 10:34:35 2010
New Revision: 10628
URL: http://source.netsurf-browser.org?rev=10628&view=rev
Log:
Add commands BACK, FORWARD, HOME and RELOAD to correspond with the buttons on the GUI.
Modified:
trunk/netsurf/amiga/arexx.c
trunk/netsurf/amiga/dist/NetSurf.guide
Modified: trunk/netsurf/amiga/arexx.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/arexx.c?rev=10628&r...
==============================================================================
--- trunk/netsurf/amiga/arexx.c (original)
+++ trunk/netsurf/amiga/arexx.c Sun Jul 11 10:34:35 2010
@@ -43,7 +43,11 @@
RX_GETTITLE,
RX_VERSION,
RX_SAVE,
- RX_PUBSCREEN
+ RX_PUBSCREEN,
+ RX_BACK,
+ RX_FORWARD,
+ RX_HOME,
+ RX_RELOAD
};
STATIC char result[100];
@@ -56,6 +60,10 @@
STATIC VOID rx_version(struct ARexxCmd *, struct RexxMsg *);
STATIC VOID rx_save(struct ARexxCmd *, struct RexxMsg *);
STATIC VOID rx_pubscreen(struct ARexxCmd *, struct RexxMsg *);
+STATIC VOID rx_back(struct ARexxCmd *, struct RexxMsg *);
+STATIC VOID rx_forward(struct ARexxCmd *, struct RexxMsg *);
+STATIC VOID rx_home(struct ARexxCmd *, struct RexxMsg *);
+STATIC VOID rx_reload(struct ARexxCmd *, struct RexxMsg *);
STATIC struct ARexxCmd Commands[] =
{
@@ -67,6 +75,10 @@
{"VERSION",RX_VERSION,rx_version,"VERSION/N,SVN=REVISION/N,RELEASE/S", 0, NULL, 0, 0, NULL },
{"SAVE",RX_SAVE,rx_save,"FILENAME/A", 0, NULL, 0, 0, NULL },
{"GETSCREENNAME",RX_PUBSCREEN,rx_pubscreen,NULL, 0, NULL, 0, 0, NULL },
+ {"BACK", RX_BACK, rx_back, "WINDOW/K/N, TAB/K/N", 0, NULL, 0, 0, NULL },
+ {"FORWARD", RX_FORWARD, rx_forward, "WINDOW/K/N, TAB/K/N", 0, NULL, 0, 0, NULL },
+ {"HOME", RX_HOME, rx_home, "WINDOW/K/N, TAB/K/N", 0, NULL, 0, 0, NULL },
+ {"RELOAD", RX_RELOAD, rx_reload, "FORCE/S, WINDOW/K/N, TAB/K/N", 0, NULL, 0, 0, NULL },
{ NULL, 0, NULL, NULL, 0, NULL, 0, 0, NULL }
};
@@ -280,3 +292,48 @@
cmd->ac_Result = result;
}
+
+STATIC VOID rx_back(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
+{
+ if(curbw)
+ {
+ if(browser_window_back_available(curbw))
+ {
+ history_back(curbw, curbw->history);
+ }
+ }
+}
+
+STATIC VOID rx_forward(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
+{
+ if(curbw)
+ {
+ if(browser_window_forward_available(curbw))
+ {
+ history_forward(curbw, curbw->history);
+ }
+ }
+}
+
+STATIC VOID rx_home(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
+{
+ if(curbw)
+ {
+ browser_window_go(curbw, option_homepage_url, NULL, true);
+ }
+}
+
+STATIC VOID rx_reload(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
+{
+ if(curbw)
+ {
+ if(cmd->ac_ArgList[0]) /* FORCE */
+ {
+ browser_window_reload(curbw, true);
+ }
+ else
+ {
+ browser_window_reload(curbw, false);
+ }
+ }
+}
Modified: trunk/netsurf/amiga/dist/NetSurf.guide
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/dist/NetSurf.guide?...
==============================================================================
--- trunk/netsurf/amiga/dist/NetSurf.guide (original)
+++ trunk/netsurf/amiga/dist/NetSurf.guide Sun Jul 11 10:34:35 2010
@@ -77,7 +77,11 @@
@{b}TOFRONT@{ub} Brings NetSurf's screen to the front
@{b}GETURL@{ub} Puts the URL displayed in the current window/tab into RESULT
@{b}GETTITLE@{ub} Puts the title of the page displayed in the current window/tab into RESULT
-@{b}GETSCREENNAME@{ub} (3.8303) Puts the name of the screen NetSurf is running on into RESULT.
+@{b}GETSCREENNAME@{ub} (2.8303) Puts the name of the screen NetSurf is running on into RESULT.
+@{b}BACK@{ub} (2.10626) Move back one page in history.
+@{b}FORWARD@{ub} (2.10626) Move forward one page in history.
+@{b}HOME@{ub} (2.10626) Move back to the home page.
+@{b}RELOAD FORCE/S@{ub} (2.10626) Reload the current page, FORCE will do a full reload.
@{b}VERSION VERSION/N REVISION/N RELEASE/S@{ub} Returns the current version of NetSurf in RESULT. You can also do version checking by supplying a VERSION and optional REVISION to check against. If the version of NetSurf is the same or higher 1 will be returned, if it is older 0. If RELEASE is specified, the command operates on the release version rather than the internal version number.
The ARexx menu will be populated with scripts named #?.nsrx in @{"arexx_dir" link options 9}, up to a maximum of 20 entries. The titles of these entries will be the comments field of the file (or the filename if comments field is empty).
12 years, 6 months
r10627 chris_y - /trunk/netsurf/amiga/fetch_file.c
by netsurf@semichrome.net
Author: chris_y
Date: Sun Jul 11 09:55:12 2010
New Revision: 10627
URL: http://source.netsurf-browser.org?rev=10627&view=rev
Log:
Allow browsing directories. Clicking through from the root of a volume doesn't work
(needs some url_to_path translation magic or an #ifdef'd patch in render/directory.c)
and the [..] parent link always points to "file:///" for some reason, but other than
that it works.
Modified:
trunk/netsurf/amiga/fetch_file.c
Modified: trunk/netsurf/amiga/fetch_file.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/fetch_file.c?rev=10...
==============================================================================
--- trunk/netsurf/amiga/fetch_file.c (original)
+++ trunk/netsurf/amiga/fetch_file.c Sun Jul 11 09:55:12 2010
@@ -45,6 +45,7 @@
char *url; /**< URL of this fetch. */
bool aborted;
bool locked;
+ bool is_dir;
struct nsObject *obj;
int httpcode;
int64 len;
@@ -296,17 +297,49 @@
}
else
{
+ char header[64];
STRPTR errorstring;
-
- errorstring = ASPrintf("%s %s",messages_get("FileError"),fetch->path);
- fetch_set_http_code(fetch->fetch_handle,404);
+ struct ExamineData *fib;
+ if(fib = ExamineObjectTags(EX_StringNameInput,fetch->path,TAG_DONE))
+ {
+ if(EXD_IS_DIRECTORY(fib)) fetch->is_dir = true;
+ FreeDosObject(DOS_EXAMINEDATA,fib);
+ }
+
+ if(fetch->is_dir == true)
+ {
+ fetch_set_http_code(fetch->fetch_handle, 200);
+ fetch->mimetype = fetch_mimetype(fetch->path);
+ LOG(("mimetype %s", fetch->mimetype));
+
+ snprintf(header, sizeof header,
+ "Content-Type: %s",
+ fetch->mimetype);
+ ami_fetch_file_send_callback(FETCH_HEADER,
+ fetch, header, strlen(header), errorcode);
+
+ ami_fetch_file_send_callback(
+ FETCH_DATA, fetch,
+ fetch->path,
+ strlen(fetch->path), errorcode);
+
+ ami_fetch_file_send_callback(FETCH_FINISHED,
+ fetch, NULL, 0,
+ errorcode);
+
+ fetch->aborted = true;
+ }
+ else
+ {
+ errorstring = ASPrintf("%s %s",messages_get("FileError"),fetch->path);
+ fetch_set_http_code(fetch->fetch_handle,404);
- errorcode = FETCH_ERROR_HTTP_NOT2;
- ami_fetch_file_send_callback(FETCH_ERROR, fetch,
- errorstring, 0,
- errorcode);
- fetch->aborted = true;
- FreeVec(errorstring);
+ errorcode = FETCH_ERROR_HTTP_NOT2;
+ ami_fetch_file_send_callback(FETCH_ERROR, fetch,
+ errorstring, 0, errorcode);
+ fetch->aborted = true;
+ FreeVec(errorstring);
+ }
}
}
}
12 years, 6 months
r10626 chris_y - /trunk/netsurf/amiga/filetype.c
by netsurf@semichrome.net
Author: chris_y
Date: Sun Jul 11 06:07:48 2010
New Revision: 10626
URL: http://source.netsurf-browser.org?rev=10626&view=rev
Log:
Missing types
Modified:
trunk/netsurf/amiga/filetype.c
Modified: trunk/netsurf/amiga/filetype.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/filetype.c?rev=1062...
==============================================================================
--- trunk/netsurf/amiga/filetype.c (original)
+++ trunk/netsurf/amiga/filetype.c Sun Jul 11 06:07:48 2010
@@ -36,8 +36,8 @@
STRPTR ttype = NULL;
struct DiskObject *dobj = NULL;
BPTR lock = 0;
- struct DataTypeHeader *dth = NULL;
- struct DataType *dtn;
+ struct DataTypeHeader *dth = NULL;
+ struct DataType *dtn;
BOOL found = FALSE;
/* First try getting a tooltype "MIMETYPE" and use that as the MIME type. Will fail over
@@ -71,17 +71,25 @@
switch(dth->dth_GroupID)
{
case GID_SYSTEM:
- sprintf(mimetype,"application/%s",dth->dth_BaseName);
+ if(strcmp("directory",dth->dth_BaseName)==0)
+ {
+ strcpy(mimetype,"application/x-netsurf-directory");
+ }
+ else if(strcmp("binary",dth->dth_BaseName)==0)
+ {
+ strcpy(mimetype,"application/octet-stream");
+ }
+ else sprintf(mimetype,"application/%s",dth->dth_BaseName);
break;
case GID_TEXT:
case GID_DOCUMENT:
if(strcmp("ascii",dth->dth_BaseName)==0)
{
- sprintf(mimetype,"text/plain",dth->dth_BaseName);
+ strcpy(mimetype,"text/plain");
}
else if(strcmp("simplehtml",dth->dth_BaseName)==0)
{
- sprintf(mimetype,"text/html",dth->dth_BaseName);
+ strcpy(mimetype,"text/html");
}
else
{
@@ -110,8 +118,6 @@
if(!found) strcpy(mimetype,"text/html"); /* If all else fails */
- //printf("%s: %s\n",unix_path,mimetype);
-
return mimetype;
}
12 years, 6 months
r10624 tlsa - in /trunk/netsurf: amiga/misc.c beos/beos_gui.cpp desktop/save_complete.c framebuffer/misc.c gtk/gtk_gui.c riscos/gui.c utils/utils.h windows/misc.c
by netsurf@semichrome.net
Author: tlsa
Date: Fri Jul 9 16:36:55 2010
New Revision: 10624
URL: http://source.netsurf-browser.org?rev=10624&view=rev
Log:
Fix inventory file leafname.
Modified:
trunk/netsurf/amiga/misc.c
trunk/netsurf/beos/beos_gui.cpp
trunk/netsurf/desktop/save_complete.c
trunk/netsurf/framebuffer/misc.c
trunk/netsurf/gtk/gtk_gui.c
trunk/netsurf/riscos/gui.c
trunk/netsurf/utils/utils.h
trunk/netsurf/windows/misc.c
Modified: trunk/netsurf/amiga/misc.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/misc.c?rev=10624&r1...
==============================================================================
--- trunk/netsurf/amiga/misc.c (original)
+++ trunk/netsurf/amiga/misc.c Fri Jul 9 16:36:55 2010
@@ -115,7 +115,7 @@
* \return true on success
*/
-bool path_add_part(char *path, int length, char *newpart)
+bool path_add_part(char *path, int length, const char *newpart)
{
if(AddPart(path, newpart, length)) return true;
else return false;
Modified: trunk/netsurf/beos/beos_gui.cpp
URL: http://source.netsurf-browser.org/trunk/netsurf/beos/beos_gui.cpp?rev=106...
==============================================================================
--- trunk/netsurf/beos/beos_gui.cpp (original)
+++ trunk/netsurf/beos/beos_gui.cpp Fri Jul 9 16:36:55 2010
@@ -1207,7 +1207,7 @@
* \return true on success
*/
-bool path_add_part(char *path, int length, char *newpart)
+bool path_add_part(char *path, int length, const char *newpart)
{
if(path[strlen(path) - 1] != '/')
strncat(path, "/", length);
Modified: trunk/netsurf/desktop/save_complete.c
URL: http://source.netsurf-browser.org/trunk/netsurf/desktop/save_complete.c?r...
==============================================================================
--- trunk/netsurf/desktop/save_complete.c (original)
+++ trunk/netsurf/desktop/save_complete.c Fri Jul 9 16:36:55 2010
@@ -765,7 +765,7 @@
bool error;
strncpy(fullpath, path, sizeof fullpath);
- error = path_add_part(fullpath, sizeof fullpath, path);
+ error = path_add_part(fullpath, sizeof fullpath, "Inventory");
if (error == false) {
warn_user("NoMemory", 0);
Modified: trunk/netsurf/framebuffer/misc.c
URL: http://source.netsurf-browser.org/trunk/netsurf/framebuffer/misc.c?rev=10...
==============================================================================
--- trunk/netsurf/framebuffer/misc.c (original)
+++ trunk/netsurf/framebuffer/misc.c Fri Jul 9 16:36:55 2010
@@ -69,7 +69,7 @@
* \return true on success
*/
-bool path_add_part(char *path, int length, char *newpart)
+bool path_add_part(char *path, int length, const char *newpart)
{
if(path[strlen(path) - 1] != '/')
strncat(path, "/", length);
Modified: trunk/netsurf/gtk/gtk_gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/gtk/gtk_gui.c?rev=10624&r...
==============================================================================
--- trunk/netsurf/gtk/gtk_gui.c (original)
+++ trunk/netsurf/gtk/gtk_gui.c Fri Jul 9 16:36:55 2010
@@ -988,7 +988,7 @@
* \return true on success
*/
-bool path_add_part(char *path, int length, char *newpart)
+bool path_add_part(char *path, int length, const char *newpart)
{
if(path[strlen(path) - 1] != '/')
strncat(path, "/", length);
Modified: trunk/netsurf/riscos/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/riscos/gui.c?rev=10624&r1...
==============================================================================
--- trunk/netsurf/riscos/gui.c (original)
+++ trunk/netsurf/riscos/gui.c Fri Jul 9 16:36:55 2010
@@ -2488,7 +2488,7 @@
* \return true on success
*/
-bool path_add_part(char *path, int length, char *newpart)
+bool path_add_part(char *path, int length, const char *newpart)
{
if(path[strlen(path) - 1] != '.')
strncat(path, ".", length);
Modified: trunk/netsurf/utils/utils.h
URL: http://source.netsurf-browser.org/trunk/netsurf/utils/utils.h?rev=10624&r...
==============================================================================
--- trunk/netsurf/utils/utils.h (original)
+++ trunk/netsurf/utils/utils.h Fri Jul 9 16:36:55 2010
@@ -121,5 +121,5 @@
void query_close(query_id);
void PDF_Password(char **owner_pass, char **user_pass, char *path);
char *filename_from_path(char *path);
-bool path_add_part(char *path, int length, char *newpart);
+bool path_add_part(char *path, int length, const char *newpart);
#endif
Modified: trunk/netsurf/windows/misc.c
URL: http://source.netsurf-browser.org/trunk/netsurf/windows/misc.c?rev=10624&...
==============================================================================
--- trunk/netsurf/windows/misc.c (original)
+++ trunk/netsurf/windows/misc.c Fri Jul 9 16:36:55 2010
@@ -75,7 +75,7 @@
* \return true on success
*/
-bool path_add_part(char *path, int length, char *newpart)
+bool path_add_part(char *path, int length, const char *newpart)
{
if(path[strlen(path) - 1] != '\\')
strncat(path, "\\", length);
12 years, 6 months