From mint-bounce@lists.fishpool.fi Mon Aug 31 05:39:53 2009 X-Virus-Scanned: amavisd-new at demon.co.uk Subject: Re: [MiNT] XaAES:update:CONFIGVARS From: Alan Hourihane To: mint@lists.fishpool.fi In-Reply-To: <1251709120.4285.15.camel@joy> References: <4A9AC0B2.8000102@freesbee.fr> <4A9ACA68.2040704@freesbee.fr> <1251663818.4192.14.camel@joy> <1251665552.4192.23.camel@joy> <1251709120.4285.15.camel@joy> Content-Type: multipart/mixed; boundary="=-s/Z4kB+0KeDd2DVPFF4k" Date: Mon, 31 Aug 2009 10:35:58 +0100 Message-Id: <1251711358.31964.19.camel@jetpack.demon.co.uk> Mime-Version: 1.0 X-Mailer: Evolution 2.24.5 X-ecartis-version: Ecartis v1.0.0 Sender: mint-bounce@lists.fishpool.fi Errors-to: mint-bounce@lists.fishpool.fi X-original-sender: alanh@fairlite.co.uk Precedence: bulk List-help: List-unsubscribe: List-Id: X-List-ID: List-subscribe: List-owner: List-post: --=-s/Z4kB+0KeDd2DVPFF4k Content-Type: text/plain Content-Transfer-Encoding: 7bit Attached is a patch which I can see all the files in tools/hypview have problems with CRLF. I will also remove the *.prj files as the Makefiles are used in the build process. Can people let me know if this captures everything or if others need doing. Thanks, Alan. --=-s/Z4kB+0KeDd2DVPFF4k Content-Disposition: attachment; filename="hypview.patch" Content-Type: text/x-patch; name="hypview.patch"; charset="us-ascii" Content-Transfer-Encoding: quoted-printable ? .cvsignore Index: block.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/block.c,v retrieving revision 1.3 diff -u -r1.3 block.c --- block.c 6 Apr 2008 15:47:03 -0000 1.3 +++ block.c 31 Aug 2009 09:34:19 -0000 @@ -1,195 +1,195 @@ -/* - * $Id: block.c,v 1.3 2008/04/06 15:47:03 ggs Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -#include -#ifdef __GNUC__ - #include - #include - #include "stat.h" -#else - #include -#endif -#include -#include "diallib.h" -#include "defs.h" - -extern WINDOW_DATA *Win; - -short GetScrapPath(char *scrap_path, short clear); - -void BlockOperation(DOCUMENT *doc, short num) -{ - WINDOW_DATA *win =3D Win; - switch(num) - { - case CO_SAVE: - SelectFileSave(doc); - break; - case CO_BACK: - GoBack(doc); - break; - case CO_COPY: - BlockCopy(doc); - break; - case CO_PASTE: - BlockPaste(clipbrd_new_window); - break; - case CO_SELECT_ALL: - SelectAll(doc); - break; - case CO_DELETE_STACK: - RemoveAllHistoryEntries(win); - ToolbarUpdate(doc,win->toolbar,TRUE); - break; - case CO_PRINT: - break; - } -} - -void BlockSelectAll(DOCUMENT *doc, BLOCK *b) -{ - b->start.line =3D 0; - b->start.y =3D 0; - b->start.offset =3D 0; - b->start.x =3D 0; - b->end.line =3D doc->lines; - b->end.y =3D doc->height; - b->end.offset =3D 0; - b->end.x =3D 0; - b->valid =3D TRUE; -} - -void BlockCopy(DOCUMENT *doc) -{ - char scrap_file[DL_PATHMAX]; - BLOCK b =3D doc->selection; -=09 - if(!b.valid) - BlockSelectAll(doc,&b); - - /* Kopier-Aktion ins Clipboard */ - graf_mouse(BUSYBEE,NULL); - if(GetScrapPath(scrap_file, TRUE)) - { - Debug("No clipboard defined"); - } - else - { - short msg[8] =3D {SC_CHANGED,0,0,2,0x2e54/*'.T'*/,0x5854/*'XT'*/,0,0}; - BlockAsciiSave(doc, scrap_file); - msg[1] =3D ap_id; - shel_write(SHW_BROADCAST,0,0,(char *)msg,NULL); - } - graf_mouse(ARROW,NULL); -} - -void BlockPaste(short new_window) -{ - /* WINDOW_DATA *win =3D Win; */ - char scrap_file[DL_PATHMAX]; -=09 - /* "Einfuege"-Aktion ladet SCRAP.TXT aus dem Clipboard */ - if(GetScrapPath(scrap_file, FALSE)) - { - Debug("No clipboard defined"); - } - else - { - long ret; - ret =3D Fopen(scrap_file, O_RDONLY); - if(ret >=3D 0) - { - Fclose((short)ret); - if (new_window) - Win =3D NULL; - OpenFileSW(scrap_file, NULL, 0); - } - } -} - -void BlockAsciiSave(DOCUMENT *doc, char *path) -{ - long ret; - if(!doc->blockProc) - { - Cconout(7); /* Bing!!!! */ - return; - } - - ret =3D Fopen(path,O_WRONLY|O_TRUNC|O_CREAT); - if(ret < 0) - FileErrorNr(path, ret); - else - { - short handle =3D (short)ret; - BLOCK b =3D doc->selection; - =09 - if(!b.valid) /* Kein gltiger Block angewhlt? */ - BlockSelectAll(doc, &b); - =09 - doc->blockProc(doc, BLK_ASCIISAVE, &b, &handle); - Fclose(handle); - } -} - -short GetScrapPath(char *scrap_path, short clear) -{ - long ret; - if(!scrp_read(scrap_path)) - return(TRUE); - - if ( clear ) /* Klemmbrett loeschen? */ - { - if(!scrp_clear()) /* scrp_clear() nicht vorhanden? */ - { - long dirhandle; -=09 - /* Verzeichnis oeffnen und alle "SCRAP.*" Dateien loeschen */ - dirhandle =3D Dopendir(scrap_path, 0); - if((dirhandle >> 24) !=3D 0xff) - { - char filename[DL_NAMEMAX], *ptr; - XATTR xattr; - long xret; - ptr =3D &scrap_path[strlen(scrap_path)]; - do - { - ret =3D Dxreaddir(DL_NAMEMAX, dirhandle, filename, &xattr, &xret); - if((ret >=3D 0) && (xret >=3D 0) &&=20 - ((xattr.mode&S_IFMT) =3D=3D S_IFREG) &&=20 - !strnicmp(filename+4,"SCRAP.",6)) - { - strcpy(ptr, filename + 4); - Fdelete(scrap_path); - } - }while(ret =3D=3D 0); - Dclosedir(dirhandle); - } - } - } -=09 - strcat(scrap_path,"SCRAP.TXT"); - return(FALSE); -} +/* + * $Id: block.c,v 1.3 2008/04/06 15:47:03 ggs Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +#include +#ifdef __GNUC__ + #include + #include + #include "stat.h" +#else + #include +#endif +#include +#include "diallib.h" +#include "defs.h" + +extern WINDOW_DATA *Win; + +short GetScrapPath(char *scrap_path, short clear); + +void BlockOperation(DOCUMENT *doc, short num) +{ + WINDOW_DATA *win =3D Win; + switch(num) + { + case CO_SAVE: + SelectFileSave(doc); + break; + case CO_BACK: + GoBack(doc); + break; + case CO_COPY: + BlockCopy(doc); + break; + case CO_PASTE: + BlockPaste(clipbrd_new_window); + break; + case CO_SELECT_ALL: + SelectAll(doc); + break; + case CO_DELETE_STACK: + RemoveAllHistoryEntries(win); + ToolbarUpdate(doc,win->toolbar,TRUE); + break; + case CO_PRINT: + break; + } +} + +void BlockSelectAll(DOCUMENT *doc, BLOCK *b) +{ + b->start.line =3D 0; + b->start.y =3D 0; + b->start.offset =3D 0; + b->start.x =3D 0; + b->end.line =3D doc->lines; + b->end.y =3D doc->height; + b->end.offset =3D 0; + b->end.x =3D 0; + b->valid =3D TRUE; +} + +void BlockCopy(DOCUMENT *doc) +{ + char scrap_file[DL_PATHMAX]; + BLOCK b =3D doc->selection; +=09 + if(!b.valid) + BlockSelectAll(doc,&b); + + /* Kopier-Aktion ins Clipboard */ + graf_mouse(BUSYBEE,NULL); + if(GetScrapPath(scrap_file, TRUE)) + { + Debug("No clipboard defined"); + } + else + { + short msg[8] =3D {SC_CHANGED,0,0,2,0x2e54/*'.T'*/,0x5854/*'XT'*/,0,0}; + BlockAsciiSave(doc, scrap_file); + msg[1] =3D ap_id; + shel_write(SHW_BROADCAST,0,0,(char *)msg,NULL); + } + graf_mouse(ARROW,NULL); +} + +void BlockPaste(short new_window) +{ + /* WINDOW_DATA *win =3D Win; */ + char scrap_file[DL_PATHMAX]; +=09 + /* "Einfuege"-Aktion ladet SCRAP.TXT aus dem Clipboard */ + if(GetScrapPath(scrap_file, FALSE)) + { + Debug("No clipboard defined"); + } + else + { + long ret; + ret =3D Fopen(scrap_file, O_RDONLY); + if(ret >=3D 0) + { + Fclose((short)ret); + if (new_window) + Win =3D NULL; + OpenFileSW(scrap_file, NULL, 0); + } + } +} + +void BlockAsciiSave(DOCUMENT *doc, char *path) +{ + long ret; + if(!doc->blockProc) + { + Cconout(7); /* Bing!!!! */ + return; + } + + ret =3D Fopen(path,O_WRONLY|O_TRUNC|O_CREAT); + if(ret < 0) + FileErrorNr(path, ret); + else + { + short handle =3D (short)ret; + BLOCK b =3D doc->selection; + =09 + if(!b.valid) /* Kein gltiger Block angewhlt? */ + BlockSelectAll(doc, &b); + =09 + doc->blockProc(doc, BLK_ASCIISAVE, &b, &handle); + Fclose(handle); + } +} + +short GetScrapPath(char *scrap_path, short clear) +{ + long ret; + if(!scrp_read(scrap_path)) + return(TRUE); + + if ( clear ) /* Klemmbrett loeschen? */ + { + if(!scrp_clear()) /* scrp_clear() nicht vorhanden? */ + { + long dirhandle; +=09 + /* Verzeichnis oeffnen und alle "SCRAP.*" Dateien loeschen */ + dirhandle =3D Dopendir(scrap_path, 0); + if((dirhandle >> 24) !=3D 0xff) + { + char filename[DL_NAMEMAX], *ptr; + XATTR xattr; + long xret; + ptr =3D &scrap_path[strlen(scrap_path)]; + do + { + ret =3D Dxreaddir(DL_NAMEMAX, dirhandle, filename, &xattr, &xret); + if((ret >=3D 0) && (xret >=3D 0) &&=20 + ((xattr.mode&S_IFMT) =3D=3D S_IFREG) &&=20 + !strnicmp(filename+4,"SCRAP.",6)) + { + strcpy(ptr, filename + 4); + Fdelete(scrap_path); + } + }while(ret =3D=3D 0); + Dclosedir(dirhandle); + } + } + } +=09 + strcat(scrap_path,"SCRAP.TXT"); + return(FALSE); +} Index: config.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/config.c,v retrieving revision 1.3 diff -u -r1.3 config.c --- config.c 6 Apr 2008 15:47:03 -0000 1.3 +++ config.c 31 Aug 2009 09:34:19 -0000 @@ -1,178 +1,178 @@ -/* - * $Id: config.c,v 1.3 2008/04/06 15:47:03 ggs Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -#include -#include -#include "diallib.h" -#include "defs.h" - -void LoadConfig(void) -{ - extern char cfg_comment; - if(CfgOpenFile(PROGRAM_UNAME".CFG")) - { - char *variable; - - cfg_comment =3D '#'; - - variable =3D CfgGetVariable("PATH=3D"); - if(*variable) - strncpy(path_list,variable,512); - variable=3DCfgGetVariable("DEFAULT=3D"); - if(*variable) - strncpy(default_file,variable,DL_PATHMAX); - variable=3DCfgGetVariable("KATALOG=3D"); - if(*variable) - strncpy(catalog_file,variable,DL_PATHMAX); - - variable=3DCfgGetVariable("WINPOS=3D"); - if(*variable) - { - win_x=3Datoi(CfgExtractVarPart(variable,',',0)); - win_y=3Datoi(CfgExtractVarPart(variable,',',1)); - win_w=3Datoi(CfgExtractVarPart(variable,',',2)); - win_h=3Datoi(CfgExtractVarPart(variable,',',3)); - } - variable =3D CfgGetVariable("WINADJUST=3D"); - if (*variable) - adjust_winsize =3D atoi(variable); - - variable=3DCfgGetVariable("FONT=3D"); - if(*variable) - { - font_id=3Datoi(CfgExtractVarPart(variable,',',0)); - font_pt=3Datoi(CfgExtractVarPart(variable,',',1)); - } - variable=3DCfgGetVariable("XFONT=3D"); - if(*variable) - { - xfont_id=3Datoi(CfgExtractVarPart(variable,',',0)); - xfont_pt=3Datoi(CfgExtractVarPart(variable,',',1)); - } - =09 - variable=3DCfgGetVariable("BGRND_COLOR=3D"); - if(*variable && ext_workout[4]>=3D4) /* >=3D 16 Farben? */ - background_col=3Datoi(variable); - - variable=3DCfgGetVariable("TEXT_COLOR=3D"); - if(*variable && ext_workout[4]>=3D4) /* >=3D 16 Farben? */ - text_col=3Datoi(variable); - - variable=3DCfgGetVariable("LINK_COLOR=3D"); - if(*variable && ext_workout[4]>=3D4) /* >=3D 16 Farben? */ - link_col=3Datoi(variable); - - variable=3DCfgGetVariable("LINK_EFFECT=3D"); - if(*variable) - link_effect=3Datoi(variable); - - variable=3DCfgGetVariable("TRANSPARENT_PICS=3D"); - if(*variable) - transparent_pics=3Datoi(variable); - - variable=3DCfgGetVariable("BIN_COLUMNS=3D"); - if(*variable) - binary_columns=3Datoi(variable); - - variable=3DCfgGetVariable("ASCII_TAB=3D"); - if(*variable) - ascii_tab_size=3Datoi(variable); - - variable=3DCfgGetVariable("VA_START_NEWWIN=3D"); - if(*variable) - va_start_newwin=3Datoi(variable); - =09 - variable=3DCfgGetVariable("DEBUG_FILE=3D"); - if(*variable) - strncpy(debug_file,variable,DL_NAMEMAX); - - variable=3DCfgGetVariable("CHECK_TIME=3D"); - if(*variable) - check_time=3Datoi(variable); - - variable=3DCfgGetVariable("SKIN=3D"); - if(*variable) - { - char *ptr=3Dskin_path; - /* relative path given? */ - if(variable[1] !=3D ':') - { - while(*ptr) - ptr++; - *ptr++=3Ddir_separator; - =09 - } - strcpy(ptr,variable); - } - else - *skin_path=3D0; - =09 - variable=3DCfgGetVariable("ASCII_BREAK=3D"); - if(*variable) - { - ascii_break_len=3Dmax(0,atoi(variable)); - ascii_break_len=3Dmin(LINE_BUF-1,ascii_break_len); - } - - variable=3DCfgGetVariable("INTELLIGENT_FULLER=3D"); - if(*variable) - intelligent_fuller=3Datoi(variable); - =09 - variable=3DCfgGetVariable("CLIPBRD_NEW_WINDOW=3D"); - if(*variable) - clipbrd_new_window=3Datoi(variable); - =09 - variable=3DCfgGetVariable("AV_WINDOW_CYCLE=3D"); - if(*variable) - av_window_cycle=3Datoi(variable); - =09 - variable=3DCfgGetVariable("MARKFILE=3D"); - if(*variable) - strncpy(marken_path,variable,DL_PATHMAX); - - variable=3DCfgGetVariable("MARKFILE_SAVE_ASK=3D"); - if(*variable) - marken_save_ask=3Datoi(variable); - - variable=3DCfgGetVariable("REF=3D"); - if(*variable) - strncpy(all_ref,variable,DL_PATHMAX); - - variable=3DCfgGetVariable("HYPFIND=3D"); - if(*variable) - strncpy(hypfind_path,variable,DL_PATHMAX); - - variable=3DCfgGetVariable("REFONLY=3D"); - if(*variable) - refonly =3D TRUE; - - CfgCloseFile(); - } - else - { - *skin_path=3D0; - } -} - +/* + * $Id: config.c,v 1.3 2008/04/06 15:47:03 ggs Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +#include +#include +#include "diallib.h" +#include "defs.h" + +void LoadConfig(void) +{ + extern char cfg_comment; + if(CfgOpenFile(PROGRAM_UNAME".CFG")) + { + char *variable; + + cfg_comment =3D '#'; + + variable =3D CfgGetVariable("PATH=3D"); + if(*variable) + strncpy(path_list,variable,512); + variable=3DCfgGetVariable("DEFAULT=3D"); + if(*variable) + strncpy(default_file,variable,DL_PATHMAX); + variable=3DCfgGetVariable("KATALOG=3D"); + if(*variable) + strncpy(catalog_file,variable,DL_PATHMAX); + + variable=3DCfgGetVariable("WINPOS=3D"); + if(*variable) + { + win_x=3Datoi(CfgExtractVarPart(variable,',',0)); + win_y=3Datoi(CfgExtractVarPart(variable,',',1)); + win_w=3Datoi(CfgExtractVarPart(variable,',',2)); + win_h=3Datoi(CfgExtractVarPart(variable,',',3)); + } + variable =3D CfgGetVariable("WINADJUST=3D"); + if (*variable) + adjust_winsize =3D atoi(variable); + + variable=3DCfgGetVariable("FONT=3D"); + if(*variable) + { + font_id=3Datoi(CfgExtractVarPart(variable,',',0)); + font_pt=3Datoi(CfgExtractVarPart(variable,',',1)); + } + variable=3DCfgGetVariable("XFONT=3D"); + if(*variable) + { + xfont_id=3Datoi(CfgExtractVarPart(variable,',',0)); + xfont_pt=3Datoi(CfgExtractVarPart(variable,',',1)); + } + =09 + variable=3DCfgGetVariable("BGRND_COLOR=3D"); + if(*variable && ext_workout[4]>=3D4) /* >=3D 16 Farben? */ + background_col=3Datoi(variable); + + variable=3DCfgGetVariable("TEXT_COLOR=3D"); + if(*variable && ext_workout[4]>=3D4) /* >=3D 16 Farben? */ + text_col=3Datoi(variable); + + variable=3DCfgGetVariable("LINK_COLOR=3D"); + if(*variable && ext_workout[4]>=3D4) /* >=3D 16 Farben? */ + link_col=3Datoi(variable); + + variable=3DCfgGetVariable("LINK_EFFECT=3D"); + if(*variable) + link_effect=3Datoi(variable); + + variable=3DCfgGetVariable("TRANSPARENT_PICS=3D"); + if(*variable) + transparent_pics=3Datoi(variable); + + variable=3DCfgGetVariable("BIN_COLUMNS=3D"); + if(*variable) + binary_columns=3Datoi(variable); + + variable=3DCfgGetVariable("ASCII_TAB=3D"); + if(*variable) + ascii_tab_size=3Datoi(variable); + + variable=3DCfgGetVariable("VA_START_NEWWIN=3D"); + if(*variable) + va_start_newwin=3Datoi(variable); + =09 + variable=3DCfgGetVariable("DEBUG_FILE=3D"); + if(*variable) + strncpy(debug_file,variable,DL_NAMEMAX); + + variable=3DCfgGetVariable("CHECK_TIME=3D"); + if(*variable) + check_time=3Datoi(variable); + + variable=3DCfgGetVariable("SKIN=3D"); + if(*variable) + { + char *ptr=3Dskin_path; + /* relative path given? */ + if(variable[1] !=3D ':') + { + while(*ptr) + ptr++; + *ptr++=3Ddir_separator; + =09 + } + strcpy(ptr,variable); + } + else + *skin_path=3D0; + =09 + variable=3DCfgGetVariable("ASCII_BREAK=3D"); + if(*variable) + { + ascii_break_len=3Dmax(0,atoi(variable)); + ascii_break_len=3Dmin(LINE_BUF-1,ascii_break_len); + } + + variable=3DCfgGetVariable("INTELLIGENT_FULLER=3D"); + if(*variable) + intelligent_fuller=3Datoi(variable); + =09 + variable=3DCfgGetVariable("CLIPBRD_NEW_WINDOW=3D"); + if(*variable) + clipbrd_new_window=3Datoi(variable); + =09 + variable=3DCfgGetVariable("AV_WINDOW_CYCLE=3D"); + if(*variable) + av_window_cycle=3Datoi(variable); + =09 + variable=3DCfgGetVariable("MARKFILE=3D"); + if(*variable) + strncpy(marken_path,variable,DL_PATHMAX); + + variable=3DCfgGetVariable("MARKFILE_SAVE_ASK=3D"); + if(*variable) + marken_save_ask=3Datoi(variable); + + variable=3DCfgGetVariable("REF=3D"); + if(*variable) + strncpy(all_ref,variable,DL_PATHMAX); + + variable=3DCfgGetVariable("HYPFIND=3D"); + if(*variable) + strncpy(hypfind_path,variable,DL_PATHMAX); + + variable=3DCfgGetVariable("REFONLY=3D"); + if(*variable) + refonly =3D TRUE; + + CfgCloseFile(); + } + else + { + *skin_path=3D0; + } +} + Index: dl_avcmd.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/dl_avcmd.c,v retrieving revision 1.3 diff -u -r1.3 dl_avcmd.c --- dl_avcmd.c 6 Apr 2008 15:47:03 -0000 1.3 +++ dl_avcmd.c 31 Aug 2009 09:34:19 -0000 @@ -1,253 +1,253 @@ -/* - * $Id: dl_avcmd.c,v 1.3 2008/04/06 15:47:03 ggs Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -#include -#include "include/av.h" -#include "diallib.h" - -extern short ap_id,server_id; - -/* Nachfrage nach dem Konfigurationsstring, der mit AV_STATUS gesetzt wu= rde */ -void DoAV_GETSTATUS(void) -{ - short msg[8] =3D {AV_GETSTATUS,0,0,0,0,0,0,0}; - msg[1] =3D ap_id; - appl_write(server_id,16,msg); -} - -/* Uebermittelt einen Konfigurationsstring, den der Server speichert */ -void DoAV_STATUS(char *string) -{ - short msg[8]=3D{AV_STATUS,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dstring; - appl_write(server_id,16,msg); -} - -/* Uebermittelt dem Server einen Tastendruck, der nicht verarbeitet wurd= e */ -void DoAV_SENDKEY(short kbd_state, short code) -{ - short msg[8]=3D{AV_SENDKEY,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - msg[3]=3Dkbd_state; - msg[4]=3Dcode; - appl_write(server_id,16,msg); -} - -/* Fragt beim Server nach, mit welchem Font die Dateien dargestellt werd= en */ -void DoAV_ASKFILEFONT(void) -{ - short msg[8]=3D{AV_ASKFILEFONT,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - appl_write(server_id,16,msg); -} - -/* Fragt beim Server nach dem Konsolen-Font */ -void DoAV_ASKCONFONT(void) -{ - short msg[8]=3D{AV_ASKCONFONT,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - appl_write(server_id,16,msg); -} - -/* Fragt beim Server nach dem selektierten Objekt */ -void DoAV_ASKOBJECT(void) -{ - short msg[8]=3D{AV_ASKOBJECT,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - appl_write(server_id,16,msg); -} - -/* Der Server soll ein Consolenfenster oeffnen */ -void DoAV_OPENCONSOLE(void) -{ - short msg[8]=3D{AV_OPENCONSOLE,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - appl_write(server_id,16,msg); -} - -/* Der Server soll ein Verzeichnisfenster oeffnen */ -void DoAV_OPENWIND(char *path, char *wildcard) -{ - short msg[8]=3D{AV_OPENWIND,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dpath; - *(char **)&msg[5]=3Dwildcard; - appl_write(server_id,16,msg); -} - -/* Der Server soll ein Programmstarten oder eine Datei oeffnen */ -void DoAV_STARTPROG(char *path, char *commandline, short id) -{ - short msg[8]=3D{AV_STARTPROG,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dpath; - *(char **)&msg[5]=3Dcommandline; - msg[7]=3Did; - appl_write(server_id,16,msg); -} - -/* Es wird dem Server ein neues Fenster gemeldet (fuer Cycling und Drag&= Drop) */ -void DoAV_ACCWINDOPEN(short handle) -{ - short msg[8]=3D{AV_ACCWINDOPEN,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - msg[3]=3Dhandle; - appl_write(server_id,16,msg); -} - -/* Es wird dem Server mitgeteilt, dass ein Fenster geschlossen wurde */ -void DoAV_ACCWINDCLOSED(short handle) -{ - short msg[8]=3D{AV_ACCWINDCLOSED,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - msg[3]=3Dhandle; - appl_write(server_id,16,msg); -} - -/* Der Server soll die Dateien kopieren, die ihm zuvor gemeldet wurden *= / -void DoAV_COPY_DRAGGED(short kbd_state, char *path) -{ - short msg[8]=3D{AV_COPY_DRAGGED,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - msg[3]=3Dkbd_state; - *(char **)&msg[4]=3Dpath; - appl_write(server_id,16,msg); -} - -/* Der Server soll das Verzeichnisfenster neu einlesen */ -void DoAV_PATH_UPDATE(char *path) -{ - short msg[8]=3D{AV_PATH_UPDATE,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dpath; - appl_write(server_id,16,msg); -} - -/* Fragt beim Server, was sich an der Position x,y befindet */ -void DoAV_WHAT_IZIT(short x,short y) -{ - short msg[8]=3D{AV_WHAT_IZIT,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - msg[3]=3Dx; - msg[4]=3Dy; - appl_write(server_id,16,msg); -} - -/* Teilt dem Server mit, dass Objekte auf sein Fenster gezogen wurden */ -void DoAV_DRAG_ON_WINDOW(short x,short y, short kbd_state, char *path) -{ - short msg[8]=3D{AV_DRAG_ON_WINDOW,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - msg[3]=3Dx; - msg[4]=3Dy; - msg[5]=3Dkbd_state; - *(char **)&msg[6]=3Dpath; - appl_write(server_id,16,msg); -} - -/* Antwort auf VA_START */ -void DoAV_STARTED(char *ptr) -{ - short msg[8]=3D{AV_STARTED,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dptr; - appl_write(server_id,16,msg); -} - -/* Der Server soll ein bestimmtes Fenster oeffnen */ -void DoAV_XWIND(char *path, char *wild_card, short bits) -{ - short msg[8]=3D{AV_XWIND,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dpath; - *(char **)&msg[5]=3Dwild_card; - msg[7]=3Dbits; - appl_write(server_id,16,msg); -} - -/* Der Server soll den passenden Viewer fuer eine Datei starten */ -void DoAV_VIEW(char *path) -{ - short msg[8]=3D{AV_VIEW,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dpath; - appl_write(server_id,16,msg); -} - -/* Der Server soll die Datei-/Ordnerinformationen anzeigen */ -void DoAV_FILEINFO(char *path) -{ - short msg[8]=3D{AV_FILEINFO,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dpath; - appl_write(server_id,16,msg); -} - -/* Der Server soll die Dateien/Ordner ans Ziel kopieren */ -void DoAV_COPYFILE(char *file_list, char *dest_path,short bits) -{ - short msg[8]=3D{AV_COPYFILE,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dfile_list; - *(char **)&msg[5]=3Ddest_path; - msg[7]=3Dbits; - appl_write(server_id,16,msg); -} - -/* Der Server soll die Dateien/Ordner loeschen */ -void DoAV_DELFILE(char *file_list) -{ - short msg[8]=3D{AV_DELFILE,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - *(char **)&msg[3]=3Dfile_list; - appl_write(server_id,16,msg); -} - -/* Teilt dem Server mit, wo das naechste Fenster geffnet werden soll */ -void DoAV_SETWINDPOS(short x,short y,short w,short h) -{ - short msg[8]=3D{AV_SETWINDPOS,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - msg[3]=3Dx; - msg[4]=3Dy; - msg[5]=3Dw; - msg[6]=3Dh; - appl_write(server_id,16,msg); -} - -/* Dem Server wird ein Mouseklick gemeldet */ -void DoAV_SENDCLICK(EVNTDATA *m, short ev_return) -{ - short msg[8]=3D{AV_SENDCLICK,0,0,0,0,0,0,0}; - msg[1]=3Dap_id; - msg[3]=3Dm->x; - msg[4]=3Dm->y; - msg[5]=3Dm->bstate; - msg[6]=3Dm->kstate; - msg[7]=3Dev_return; -=09 - appl_write(server_id,16,msg); -} +/* + * $Id: dl_avcmd.c,v 1.3 2008/04/06 15:47:03 ggs Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +#include +#include "include/av.h" +#include "diallib.h" + +extern short ap_id,server_id; + +/* Nachfrage nach dem Konfigurationsstring, der mit AV_STATUS gesetzt wu= rde */ +void DoAV_GETSTATUS(void) +{ + short msg[8] =3D {AV_GETSTATUS,0,0,0,0,0,0,0}; + msg[1] =3D ap_id; + appl_write(server_id,16,msg); +} + +/* Uebermittelt einen Konfigurationsstring, den der Server speichert */ +void DoAV_STATUS(char *string) +{ + short msg[8]=3D{AV_STATUS,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dstring; + appl_write(server_id,16,msg); +} + +/* Uebermittelt dem Server einen Tastendruck, der nicht verarbeitet wurd= e */ +void DoAV_SENDKEY(short kbd_state, short code) +{ + short msg[8]=3D{AV_SENDKEY,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + msg[3]=3Dkbd_state; + msg[4]=3Dcode; + appl_write(server_id,16,msg); +} + +/* Fragt beim Server nach, mit welchem Font die Dateien dargestellt werd= en */ +void DoAV_ASKFILEFONT(void) +{ + short msg[8]=3D{AV_ASKFILEFONT,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + appl_write(server_id,16,msg); +} + +/* Fragt beim Server nach dem Konsolen-Font */ +void DoAV_ASKCONFONT(void) +{ + short msg[8]=3D{AV_ASKCONFONT,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + appl_write(server_id,16,msg); +} + +/* Fragt beim Server nach dem selektierten Objekt */ +void DoAV_ASKOBJECT(void) +{ + short msg[8]=3D{AV_ASKOBJECT,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + appl_write(server_id,16,msg); +} + +/* Der Server soll ein Consolenfenster oeffnen */ +void DoAV_OPENCONSOLE(void) +{ + short msg[8]=3D{AV_OPENCONSOLE,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + appl_write(server_id,16,msg); +} + +/* Der Server soll ein Verzeichnisfenster oeffnen */ +void DoAV_OPENWIND(char *path, char *wildcard) +{ + short msg[8]=3D{AV_OPENWIND,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dpath; + *(char **)&msg[5]=3Dwildcard; + appl_write(server_id,16,msg); +} + +/* Der Server soll ein Programmstarten oder eine Datei oeffnen */ +void DoAV_STARTPROG(char *path, char *commandline, short id) +{ + short msg[8]=3D{AV_STARTPROG,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dpath; + *(char **)&msg[5]=3Dcommandline; + msg[7]=3Did; + appl_write(server_id,16,msg); +} + +/* Es wird dem Server ein neues Fenster gemeldet (fuer Cycling und Drag&= Drop) */ +void DoAV_ACCWINDOPEN(short handle) +{ + short msg[8]=3D{AV_ACCWINDOPEN,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + msg[3]=3Dhandle; + appl_write(server_id,16,msg); +} + +/* Es wird dem Server mitgeteilt, dass ein Fenster geschlossen wurde */ +void DoAV_ACCWINDCLOSED(short handle) +{ + short msg[8]=3D{AV_ACCWINDCLOSED,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + msg[3]=3Dhandle; + appl_write(server_id,16,msg); +} + +/* Der Server soll die Dateien kopieren, die ihm zuvor gemeldet wurden *= / +void DoAV_COPY_DRAGGED(short kbd_state, char *path) +{ + short msg[8]=3D{AV_COPY_DRAGGED,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + msg[3]=3Dkbd_state; + *(char **)&msg[4]=3Dpath; + appl_write(server_id,16,msg); +} + +/* Der Server soll das Verzeichnisfenster neu einlesen */ +void DoAV_PATH_UPDATE(char *path) +{ + short msg[8]=3D{AV_PATH_UPDATE,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dpath; + appl_write(server_id,16,msg); +} + +/* Fragt beim Server, was sich an der Position x,y befindet */ +void DoAV_WHAT_IZIT(short x,short y) +{ + short msg[8]=3D{AV_WHAT_IZIT,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + msg[3]=3Dx; + msg[4]=3Dy; + appl_write(server_id,16,msg); +} + +/* Teilt dem Server mit, dass Objekte auf sein Fenster gezogen wurden */ +void DoAV_DRAG_ON_WINDOW(short x,short y, short kbd_state, char *path) +{ + short msg[8]=3D{AV_DRAG_ON_WINDOW,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + msg[3]=3Dx; + msg[4]=3Dy; + msg[5]=3Dkbd_state; + *(char **)&msg[6]=3Dpath; + appl_write(server_id,16,msg); +} + +/* Antwort auf VA_START */ +void DoAV_STARTED(char *ptr) +{ + short msg[8]=3D{AV_STARTED,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dptr; + appl_write(server_id,16,msg); +} + +/* Der Server soll ein bestimmtes Fenster oeffnen */ +void DoAV_XWIND(char *path, char *wild_card, short bits) +{ + short msg[8]=3D{AV_XWIND,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dpath; + *(char **)&msg[5]=3Dwild_card; + msg[7]=3Dbits; + appl_write(server_id,16,msg); +} + +/* Der Server soll den passenden Viewer fuer eine Datei starten */ +void DoAV_VIEW(char *path) +{ + short msg[8]=3D{AV_VIEW,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dpath; + appl_write(server_id,16,msg); +} + +/* Der Server soll die Datei-/Ordnerinformationen anzeigen */ +void DoAV_FILEINFO(char *path) +{ + short msg[8]=3D{AV_FILEINFO,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dpath; + appl_write(server_id,16,msg); +} + +/* Der Server soll die Dateien/Ordner ans Ziel kopieren */ +void DoAV_COPYFILE(char *file_list, char *dest_path,short bits) +{ + short msg[8]=3D{AV_COPYFILE,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dfile_list; + *(char **)&msg[5]=3Ddest_path; + msg[7]=3Dbits; + appl_write(server_id,16,msg); +} + +/* Der Server soll die Dateien/Ordner loeschen */ +void DoAV_DELFILE(char *file_list) +{ + short msg[8]=3D{AV_DELFILE,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + *(char **)&msg[3]=3Dfile_list; + appl_write(server_id,16,msg); +} + +/* Teilt dem Server mit, wo das naechste Fenster geffnet werden soll */ +void DoAV_SETWINDPOS(short x,short y,short w,short h) +{ + short msg[8]=3D{AV_SETWINDPOS,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + msg[3]=3Dx; + msg[4]=3Dy; + msg[5]=3Dw; + msg[6]=3Dh; + appl_write(server_id,16,msg); +} + +/* Dem Server wird ein Mouseklick gemeldet */ +void DoAV_SENDCLICK(EVNTDATA *m, short ev_return) +{ + short msg[8]=3D{AV_SENDCLICK,0,0,0,0,0,0,0}; + msg[1]=3Dap_id; + msg[3]=3Dm->x; + msg[4]=3Dm->y; + msg[5]=3Dm->bstate; + msg[6]=3Dm->kstate; + msg[7]=3Dev_return; +=09 + appl_write(server_id,16,msg); +} Index: dl_bubbl.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/dl_bubbl.c,v retrieving revision 1.2 diff -u -r1.2 dl_bubbl.c --- dl_bubbl.c 12 Feb 2006 15:14:29 -0000 1.2 +++ dl_bubbl.c 31 Aug 2009 09:34:19 -0000 @@ -1,105 +1,105 @@ -/* - * $Id: dl_bubbl.c,v 1.2 2006/02/12 15:14:29 pdonze Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -#include -#include "diallib.h" - -#if USE_BUBBLEGEM =3D=3D YES -#include "bubble/bgh.h" - -char *bub_fname=3DBUBBLEGEM_FILE; - -void *Help; - -void DoInitBubble(void); -void DoExitBubble(void); -void Bubble(short mx,short my); - - -void DoInitBubble(void) -{ - Help=3DBGH_load(bub_fname); -} - -void DoExitBubble(void) -{ - BGH_free(Help); -} - -void -Bubble(short mx,short my) -{ - CHAIN_DATA *ptr; - short gruppe,index,typ=3D-1; - - ptr=3Dfind_ptr_by_whandle(wind_find(mx,my)); - - if(!ptr) - return; - - if(ptr->type=3D=3DWIN_DIALOG) - { - OBJECT *tree=3D((DIALOG_DATA *)ptr)->obj; - short i; - if(ptr->status & WIS_ICONIFY) - { - GRECT box; - tree=3Dtree_addr[DIAL_LIBRARY]; - wind_get_grect(ptr->whandle, WF_WORKXYWH,&box); - tree_addr[DIAL_LIBRARY][0].ob_x=3Dbox.g_x; - tree_addr[DIAL_LIBRARY][0].ob_y=3Dbox.g_y; - } - - index=3Dobjc_find(tree,ROOT,MAX_DEPTH,mx,my); - if(index=3D=3D-1) - return; - - for(i=3D0;itype=3D=3DWIN_WINDOW) - { - short data[4]; - data[0]=3Dmx; - data[1]=3Dmy; - data[2]=3D-1; - ((WINDOW_DATA *)ptr)->proc((WINDOW_DATA *)ptr,WIND_BUBBLE,data); - if(data[2]!=3D-1) - { - gruppe=3Ddata[2]; - index=3Ddata[3]; - typ=3DBGH_USER; - } - } - - if(typ!=3D-1) - BGH_action(Help,mx,my,typ,gruppe,index); -} - -#endif +/* + * $Id: dl_bubbl.c,v 1.2 2006/02/12 15:14:29 pdonze Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +#include +#include "diallib.h" + +#if USE_BUBBLEGEM =3D=3D YES +#include "bubble/bgh.h" + +char *bub_fname=3DBUBBLEGEM_FILE; + +void *Help; + +void DoInitBubble(void); +void DoExitBubble(void); +void Bubble(short mx,short my); + + +void DoInitBubble(void) +{ + Help=3DBGH_load(bub_fname); +} + +void DoExitBubble(void) +{ + BGH_free(Help); +} + +void +Bubble(short mx,short my) +{ + CHAIN_DATA *ptr; + short gruppe,index,typ=3D-1; + + ptr=3Dfind_ptr_by_whandle(wind_find(mx,my)); + + if(!ptr) + return; + + if(ptr->type=3D=3DWIN_DIALOG) + { + OBJECT *tree=3D((DIALOG_DATA *)ptr)->obj; + short i; + if(ptr->status & WIS_ICONIFY) + { + GRECT box; + tree=3Dtree_addr[DIAL_LIBRARY]; + wind_get_grect(ptr->whandle, WF_WORKXYWH,&box); + tree_addr[DIAL_LIBRARY][0].ob_x=3Dbox.g_x; + tree_addr[DIAL_LIBRARY][0].ob_y=3Dbox.g_y; + } + + index=3Dobjc_find(tree,ROOT,MAX_DEPTH,mx,my); + if(index=3D=3D-1) + return; + + for(i=3D0;itype=3D=3DWIN_WINDOW) + { + short data[4]; + data[0]=3Dmx; + data[1]=3Dmy; + data[2]=3D-1; + ((WINDOW_DATA *)ptr)->proc((WINDOW_DATA *)ptr,WIND_BUBBLE,data); + if(data[2]!=3D-1) + { + gruppe=3Ddata[2]; + index=3Ddata[3]; + typ=3DBGH_USER; + } + } + + if(typ!=3D-1) + BGH_action(Help,mx,my,typ,gruppe,index); +} + +#endif Index: dl_user.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/dl_user.h,v retrieving revision 1.5 diff -u -r1.5 dl_user.h --- dl_user.h 8 May 2006 21:02:07 -0000 1.5 +++ dl_user.h 31 Aug 2009 09:34:20 -0000 @@ -1,149 +1,149 @@ -/* - * $Id: dl_user.h,v 1.5 2006/05/08 21:02:07 pdonze Exp $ - *=20 - * HypView - (c) 2001 - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -#ifndef _dl_user_h -#define _dl_user_h -/******************************************** - * begin options * - ********************************************/ -/* #define GENERATE_DIAGS */ -/* Debug mode? (=3Dadd debugging output while compiling) */ -#define DEBUG OFF -/* Create debug log file? (=3Dput all debugging output into file) */ -#define DEBUG_LOG NO - -/* Main language for this application (=3Dbuilt in error messages) */ -#define LANGUAGE ENGLISH - -/* Use MagiC specific functions? (=3Dlimit usage on MagiC compatible sys= tems) */ -#define MAGIC_ONLY NO - -/* Use a global VDI workstation? */ -#define USE_GLOBAL_VDI YES -/* Save color palette on init? */ -#define SAVE_COLORS NO - -/* Closing a window/dialog will automatically remove all related structu= res */ -#define WIND_CLOSE_IS_REMOVE YES -#define DIAL_CLOSE_IS_REMOVE YES - -/* Use a global keyboard shortcut handler (=3Dneeds DoUserKeybd() in dl_= user.c) */ -#define USE_GLOBAL_KEYBOARD NO - -/* Use user specific events? (=3DPass events to DoUserEvents() before ha= ndling) */ -#define USE_USER_EVENTS YES - -/* Install/remove menubar on initialization? (Needs a resource object ME= NU) */ -#define USE_MENU NO - -/* Use window dialog management routines? (Based on WDialog) */ -#define USE_DIALOG YES - -/* Use normal window management routines? */ -#define USE_WINDOW YES -/* Automatically set the title when iconifying according to RSC file */ -#define SET_ICONIFY_NAME NO -/* Open a separate VDI workstation for each new window */ -#define OPEN_VDI_WORKSTATION NO -/* Use a logical raster for computations (=3Dnot the pixel raster) */ -#define USE_LOGICALRASTER YES -/* Use toolbar routines */ -#define USE_TOOLBAR YES - -/* Use fileselector routines */ -#define USE_FILESELECTOR YES -/* Use fontselector routines */ -#define USE_FONTSELECTOR NO - -/* Level of AV protocol support: - 0 =3D none - 1 =3D minimal (limit on VA_START, AV_SENDCLICK and AV_SENDKEY reception= ) - 2 =3D normal (AV_PROTOKOL, AV_EXIT, VA_PROTOSTATUS, VA_START, - AV_SENDCLICK and AV_SENDKEY) - 3 =3D full (Sending and reception of all possible messages) - Needs DoVA_Message()! -*/ -#define USE_AV_PROTOCOL 3 - -/* Support Drag&Drop protokol */ -#define USE_DRAGDROP YES - -/* Support long file names (=3DPdomain(PD_MINT)) */ -#define USE_LONGFILENAMES YES - -/* Enable support for long edit fields (As in MagiC) */ -#define USE_LONGEDITFIELDS NO - -/* BubbleGEM help system */ -#define USE_BUBBLEGEM NO -/* ST-Guide help system */ -#define USE_STGUIDE NO - -/* Document history protocol */ -#define USE_DOCUMENTHISTORY YES - -/* Name of user specific prototype */ -#define SPEC_DEFINITION_FILE "defs.h" - -/* "nice" form of the application name */ -#define PROGRAM_NAME "HypView" -/* Application name in uppercase letters */ -#define PROGRAM_UNAME "HYP_VIEW" -/* Name of the resource file */ -#define RESOURCE_FILE "hyp_view.rsc" -/* Name of the resource header file */ -#define RESOURCE_HEADER_FILE "hyp_view.h" -/* Name of the BubbleGEM header file */ -#define BUBBLEGEM_FILE "hyp_view.bgh" -/* Name of the ST-Guide help file */ -#define STGUIDE_FILE "*:\\hyp_view.hyp " - -/* Maximum line lenght in the configuration file */ -#define CFG_MAXLINESIZE 80 -/* Look for configuration file in the HOME folder? */ -#define CFG_IN_HOME YES - -/* Number of supported Drag&Drop formats */ -#define MAX_DDFORMAT 8 - -/* Maximum number of simultaneous iconified windows */ -#define MAX_ICONIFY_PLACE 16 -/* Maximum number of recursion levels for modal dialogs */ -#define MAX_MODALRECURSION 1 - - -/* event_multi parameters */ -#define EVENTS MU_MESAG|MU_KEYBD|MU_BUTTON -#define MBCLICKS 2|0x0100 -#define MBMASK 3 -#define MBSTATE 0 -#define MBLOCK1 NULL -#define MBLOCK2 NULL -#define WAIT 0L - -/******************************************** - * end options * - ********************************************/ -#endif /* _dl_user_h */ +/* + * $Id: dl_user.h,v 1.5 2006/05/08 21:02:07 pdonze Exp $ + *=20 + * HypView - (c) 2001 - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +#ifndef _dl_user_h +#define _dl_user_h +/******************************************** + * begin options * + ********************************************/ +/* #define GENERATE_DIAGS */ +/* Debug mode? (=3Dadd debugging output while compiling) */ +#define DEBUG OFF +/* Create debug log file? (=3Dput all debugging output into file) */ +#define DEBUG_LOG NO + +/* Main language for this application (=3Dbuilt in error messages) */ +#define LANGUAGE ENGLISH + +/* Use MagiC specific functions? (=3Dlimit usage on MagiC compatible sys= tems) */ +#define MAGIC_ONLY NO + +/* Use a global VDI workstation? */ +#define USE_GLOBAL_VDI YES +/* Save color palette on init? */ +#define SAVE_COLORS NO + +/* Closing a window/dialog will automatically remove all related structu= res */ +#define WIND_CLOSE_IS_REMOVE YES +#define DIAL_CLOSE_IS_REMOVE YES + +/* Use a global keyboard shortcut handler (=3Dneeds DoUserKeybd() in dl_= user.c) */ +#define USE_GLOBAL_KEYBOARD NO + +/* Use user specific events? (=3DPass events to DoUserEvents() before ha= ndling) */ +#define USE_USER_EVENTS YES + +/* Install/remove menubar on initialization? (Needs a resource object ME= NU) */ +#define USE_MENU NO + +/* Use window dialog management routines? (Based on WDialog) */ +#define USE_DIALOG YES + +/* Use normal window management routines? */ +#define USE_WINDOW YES +/* Automatically set the title when iconifying according to RSC file */ +#define SET_ICONIFY_NAME NO +/* Open a separate VDI workstation for each new window */ +#define OPEN_VDI_WORKSTATION NO +/* Use a logical raster for computations (=3Dnot the pixel raster) */ +#define USE_LOGICALRASTER YES +/* Use toolbar routines */ +#define USE_TOOLBAR YES + +/* Use fileselector routines */ +#define USE_FILESELECTOR YES +/* Use fontselector routines */ +#define USE_FONTSELECTOR NO + +/* Level of AV protocol support: + 0 =3D none + 1 =3D minimal (limit on VA_START, AV_SENDCLICK and AV_SENDKEY reception= ) + 2 =3D normal (AV_PROTOKOL, AV_EXIT, VA_PROTOSTATUS, VA_START, + AV_SENDCLICK and AV_SENDKEY) + 3 =3D full (Sending and reception of all possible messages) + Needs DoVA_Message()! +*/ +#define USE_AV_PROTOCOL 3 + +/* Support Drag&Drop protokol */ +#define USE_DRAGDROP YES + +/* Support long file names (=3DPdomain(PD_MINT)) */ +#define USE_LONGFILENAMES YES + +/* Enable support for long edit fields (As in MagiC) */ +#define USE_LONGEDITFIELDS NO + +/* BubbleGEM help system */ +#define USE_BUBBLEGEM NO +/* ST-Guide help system */ +#define USE_STGUIDE NO + +/* Document history protocol */ +#define USE_DOCUMENTHISTORY YES + +/* Name of user specific prototype */ +#define SPEC_DEFINITION_FILE "defs.h" + +/* "nice" form of the application name */ +#define PROGRAM_NAME "HypView" +/* Application name in uppercase letters */ +#define PROGRAM_UNAME "HYP_VIEW" +/* Name of the resource file */ +#define RESOURCE_FILE "hyp_view.rsc" +/* Name of the resource header file */ +#define RESOURCE_HEADER_FILE "hyp_view.h" +/* Name of the BubbleGEM header file */ +#define BUBBLEGEM_FILE "hyp_view.bgh" +/* Name of the ST-Guide help file */ +#define STGUIDE_FILE "*:\\hyp_view.hyp " + +/* Maximum line lenght in the configuration file */ +#define CFG_MAXLINESIZE 80 +/* Look for configuration file in the HOME folder? */ +#define CFG_IN_HOME YES + +/* Number of supported Drag&Drop formats */ +#define MAX_DDFORMAT 8 + +/* Maximum number of simultaneous iconified windows */ +#define MAX_ICONIFY_PLACE 16 +/* Maximum number of recursion levels for modal dialogs */ +#define MAX_MODALRECURSION 1 + + +/* event_multi parameters */ +#define EVENTS MU_MESAG|MU_KEYBD|MU_BUTTON +#define MBCLICKS 2|0x0100 +#define MBMASK 3 +#define MBSTATE 0 +#define MBLOCK1 NULL +#define MBLOCK2 NULL +#define WAIT 0L + +/******************************************** + * end options * + ********************************************/ +#endif /* _dl_user_h */ Index: error.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/error.c,v retrieving revision 1.2 diff -u -r1.2 error.c --- error.c 12 Feb 2006 15:14:30 -0000 1.2 +++ error.c 31 Aug 2009 09:34:20 -0000 @@ -1,56 +1,56 @@ -/* - * $Id: error.c,v 1.2 2006/02/12 15:14:30 pdonze Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -#include -#include -#include -#include -#include "diallib.h" -#include "defs.h" - -void FileError(char *path,char *str) -{ -char *filename; -char ZStr[255]; - - filename=3Dstrrchr(path,dir_separator); - if(!filename++) - filename=3Dpath; - - sprintf ( ZStr, "[3][ File <%s>: | %s ][ OK ]", filename, str ); - form_alert ( 1, ZStr ); -} - -void FileErrorNr(char *path,long ret) -{ -char *filename; - filename=3Dstrrchr(path,dir_separator); - if(!filename++) - filename =3D path; - if((ret =3D=3D ENOENT/*EFILNF*/) || (ret =3D=3D ENOTDIR/*EPTHNF*/)) - Debug("ERROR: File <%s>: file not found",filename); - else - Debug("ERROR: File <%s>: error %ld",filename,ret); -} +/* + * $Id: error.c,v 1.2 2006/02/12 15:14:30 pdonze Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +#include +#include +#include +#include +#include "diallib.h" +#include "defs.h" + +void FileError(char *path,char *str) +{ +char *filename; +char ZStr[255]; + + filename=3Dstrrchr(path,dir_separator); + if(!filename++) + filename=3Dpath; + + sprintf ( ZStr, "[3][ File <%s>: | %s ][ OK ]", filename, str ); + form_alert ( 1, ZStr ); +} + +void FileErrorNr(char *path,long ret) +{ +char *filename; + filename=3Dstrrchr(path,dir_separator); + if(!filename++) + filename =3D path; + if((ret =3D=3D ENOENT/*EFILNF*/) || (ret =3D=3D ENOTDIR/*EPTHNF*/)) + Debug("ERROR: File <%s>: file not found",filename); + else + Debug("ERROR: File <%s>: error %ld",filename,ret); +} Index: hyp_view.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/hyp_view.c,v retrieving revision 1.3 diff -u -r1.3 hyp_view.c --- hyp_view.c 6 Apr 2008 15:47:03 -0000 1.3 +++ hyp_view.c 31 Aug 2009 09:34:20 -0000 @@ -1,77 +1,77 @@ -/* - * $Id: hyp_view.c,v 1.3 2008/04/06 15:47:03 ggs Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -#include -#include "diallib.h" -#include "defs.h" - -extern short _app; - -int -main(int argc, char *argv[]) -{ - if(DoAesInit()) - return(0); - - if(DoInitSystem()) - return(0); - - LoadConfig(); /* Konfiguration laden */ - - Init(); /* restliche Initialisierung */ - - if(!_app) /* Als ACC gestartet? */ - menu_register(ap_id," " PROGRAM_NAME); /* ...im Menu anmelden */ - - if(argc <=3D 1) /* Keine Parameter bergeben? */ - { - if(_app) /* Als Programm gestartet? */ - { - if (*default_file) /* Default-Hypertext angegeben? */ - OpenFileNW(default_file,NULL,0); - else - SelectFileLoad(); /* Datei per Fileselector erfragen */ - } - } - else /* Falls Parameter angegeben... */ - { - /* ...diese Datei (inkl. Kapitel) laden */ - OpenFileNW(argv[1], (argc > 2 ? argv[2]:NULL), 0); - } - - while(!_app || (!doneFlag && all_list)) - { - DoEvent(); - if(quitApp) - break; - } -=09 - RemoveItems(); - - Exit(); - - DoExitSystem(); - return(0); -} +/* + * $Id: hyp_view.c,v 1.3 2008/04/06 15:47:03 ggs Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +#include +#include "diallib.h" +#include "defs.h" + +extern short _app; + +int +main(int argc, char *argv[]) +{ + if(DoAesInit()) + return(0); + + if(DoInitSystem()) + return(0); + + LoadConfig(); /* Konfiguration laden */ + + Init(); /* restliche Initialisierung */ + + if(!_app) /* Als ACC gestartet? */ + menu_register(ap_id," " PROGRAM_NAME); /* ...im Menu anmelden */ + + if(argc <=3D 1) /* Keine Parameter bergeben? */ + { + if(_app) /* Als Programm gestartet? */ + { + if (*default_file) /* Default-Hypertext angegeben? */ + OpenFileNW(default_file,NULL,0); + else + SelectFileLoad(); /* Datei per Fileselector erfragen */ + } + } + else /* Falls Parameter angegeben... */ + { + /* ...diese Datei (inkl. Kapitel) laden */ + OpenFileNW(argv[1], (argc > 2 ? argv[2]:NULL), 0); + } + + while(!_app || (!doneFlag && all_list)) + { + DoEvent(); + if(quitApp) + break; + } +=09 + RemoveItems(); + + Exit(); + + DoExitSystem(); + return(0); +} Index: hyp_view.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/hyp_view.h,v retrieving revision 1.2 diff -u -r1.2 hyp_view.h --- hyp_view.h 18 Apr 2008 20:42:48 -0000 1.2 +++ hyp_view.h 31 Aug 2009 09:34:20 -0000 @@ -1,105 +1,105 @@ - /* Resource C-Header-File v1.95 f=81r ResourceMaster ab v2.06 by ARDIS= OFT */ - -#define DIAL_LIBRARY 0 /* form/dial */ -#define DI_ICON 1 /* CICON in tree DIAL_LIBRARY */ -#define DI_ICONIFY_NAME 2 /* STRING in tree DIAL_LIBRARY */ -#define DI_MEMORY_ERROR 3 /* STRING in tree DIAL_LIBRARY */ -#define DI_WDIALOG_ERROR 4 /* STRING in tree DIAL_LIBRARY */ -#define DI_HELP_ERROR 5 /* STRING in tree DIAL_LIBRARY */ -#define DI_VDI_WKS_ERROR 6 /* STRING in tree DIAL_LIBRARY */ - -#define TOOLBAR 1 /* form/dial */ -#define TO_BACKGRND 0 /* BOX in tree TOOLBAR */ -#define TO_ID 15 /* STRING in tree TOOLBAR */ -#define TO_SEARCHBOX 16 /* BOX in tree TOOLBAR */ -#define TO_SEARCH 17 /* FTEXT in tree TOOLBAR */ -#define TO_STRNOTFOUND 18 /* TEXT in tree TOOLBAR */ -#define TO_BUTTONBOX 19 /* IBOX in tree TOOLBAR */ -#define TO_MENU 14 /* CICON in tree TOOLBAR */ -#define TO_SAVE 13 /* CICON in tree TOOLBAR */ -#define TO_LOAD 12 /* CICON in tree TOOLBAR */ -#define TO_INFO 11 /* CICON in tree TOOLBAR */ -#define TO_HELP 10 /* CICON in tree TOOLBAR */ -#define TO_REFERENCES 9 /* CICON in tree TOOLBAR */ -#define TO_KATALOG 8 /* CICON in tree TOOLBAR */ -#define TO_INDEX 7 /* CICON in tree TOOLBAR */ -#define TO_NEXT 6 /* CICON in tree TOOLBAR */ -#define TO_HOME 5 /* CICON in tree TOOLBAR */ -#define TO_PREVIOUS 4 /* CICON in tree TOOLBAR */ -#define TO_MEMORY 3 /* CICON in tree TOOLBAR */ -#define TO_MOREBACK 2 /* CICON in tree TOOLBAR */ -#define TO_BACK 1 /* CICON in tree TOOLBAR */ - -#define CONTEXT 2 /* form/dial */ -#define CO_BACK 1 /* STRING in tree CONTEXT */ -#define CO_COPY 2 /* STRING in tree CONTEXT */ -#define CO_PASTE 3 /* STRING in tree CONTEXT */ -#define CO_SELECT_ALL 5 /* STRING in tree CONTEXT */ -#define CO_SAVE 7 /* STRING in tree CONTEXT */ -#define CO_PRINT 8 /* STRING in tree CONTEXT */ -#define CO_DELETE_STACK 9 /* STRING in tree CONTEXT */ - -#define EMPTYPOPUP 3 /* form/dial */ -#define EM_BACK 0 /* BOX in tree EMPTYPOPUP */ -#define EM_1 1 /* STRING in tree EMPTYPOPUP */ -#define EM_2 2 /* STRING in tree EMPTYPOPUP */ -#define EM_3 3 /* STRING in tree EMPTYPOPUP */ -#define EM_4 4 /* STRING in tree EMPTYPOPUP */ -#define EM_5 5 /* STRING in tree EMPTYPOPUP */ -#define EM_6 6 /* STRING in tree EMPTYPOPUP */ -#define EM_7 7 /* STRING in tree EMPTYPOPUP */ -#define EM_8 8 /* STRING in tree EMPTYPOPUP */ -#define EM_9 9 /* STRING in tree EMPTYPOPUP */ -#define EM_10 10 /* STRING in tree EMPTYPOPUP */ -#define EM_11 11 /* STRING in tree EMPTYPOPUP */ -#define EM_12 12 /* STRING in tree EMPTYPOPUP */ - -#define PROGINFO 4 /* form/dial */ -#define PROG_OK 5 /* BUTTON in tree PROGINFO */ -#define PROG_NAME 6 /* STRING in tree PROGINFO */ -#define PROG_DATEI 7 /* STRING in tree PROGINFO */ -#define PROG_THEMA 8 /* STRING in tree PROGINFO */ -#define PROG_AUTOR 9 /* STRING in tree PROGINFO */ -#define PROG_VERSION 10 /* STRING in tree PROGINFO */ -#define PROG_DATE 11 /* STRING in tree PROGINFO */ - -#define SEARCH_RESULT 5 /* form/dial */ -#define SR_FSTL_UP 1 /* BOXCHAR in tree SEARCH_RESULT */ -#define SR_FSTL_BACK 2 /* BOX in tree SEARCH_RESULT */ -#define SR_FSTL_WHITE 3 /* BOX in tree SEARCH_RESULT */ -#define SR_FSTL_DOWN 4 /* BOXCHAR in tree SEARCH_RESULT */ -#define SR_BOX 5 /* IBOX in tree SEARCH_RESULT */ -#define SR_FSTL_0 6 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_1 7 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_2 8 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_3 9 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_4 10 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_5 11 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_6 12 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_7 13 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_8 14 /* TEXT in tree SEARCH_RESULT */ -#define SR_FSTL_9 15 /* TEXT in tree SEARCH_RESULT */ -#define SR_ABORT 16 /* BUTTON in tree SEARCH_RESULT */ - -#define HYPFIND 6 /* form/dial */ -#define HYPFIND_STRING 2 /* FTEXT in tree HYPFIND */ -#define HYPFIND_TEXT 3 /* BUTTON in tree HYPFIND */ -#define HYPFIND_PAGES 4 /* BUTTON in tree HYPFIND */ -#define HYPFIND_REF 5 /* BUTTON in tree HYPFIND */ -#define HYPFIND_ABORT 6 /* BUTTON in tree HYPFIND */ -#define HYPFIND_ALL_PAGE 7 /* BUTTON in tree HYPFIND */ -#define HYPFIND_ALL_HYP 8 /* BUTTON in tree HYPFIND */ - -#define WARN_FEXIST 0 /* Alert string */ - -#define WARN_ERASEMARK 1 /* Alert string */ - -#define ASK_SETMARK 2 /* Alert string */ - -#define ASK_SAVEMARKFILE 3 /* Alert string */ - -#define WARN_NORESULT 4 /* Alert string */ - -#define FSLX_LOAD 5 /* Free string */ - -#define FSLX_SAVE 6 /* Free string */ + /* Resource C-Header-File v1.95 f=81r ResourceMaster ab v2.06 by ARDIS= OFT */ + +#define DIAL_LIBRARY 0 /* form/dial */ +#define DI_ICON 1 /* CICON in tree DIAL_LIBRARY */ +#define DI_ICONIFY_NAME 2 /* STRING in tree DIAL_LIBRARY */ +#define DI_MEMORY_ERROR 3 /* STRING in tree DIAL_LIBRARY */ +#define DI_WDIALOG_ERROR 4 /* STRING in tree DIAL_LIBRARY */ +#define DI_HELP_ERROR 5 /* STRING in tree DIAL_LIBRARY */ +#define DI_VDI_WKS_ERROR 6 /* STRING in tree DIAL_LIBRARY */ + +#define TOOLBAR 1 /* form/dial */ +#define TO_BACKGRND 0 /* BOX in tree TOOLBAR */ +#define TO_ID 15 /* STRING in tree TOOLBAR */ +#define TO_SEARCHBOX 16 /* BOX in tree TOOLBAR */ +#define TO_SEARCH 17 /* FTEXT in tree TOOLBAR */ +#define TO_STRNOTFOUND 18 /* TEXT in tree TOOLBAR */ +#define TO_BUTTONBOX 19 /* IBOX in tree TOOLBAR */ +#define TO_MENU 14 /* CICON in tree TOOLBAR */ +#define TO_SAVE 13 /* CICON in tree TOOLBAR */ +#define TO_LOAD 12 /* CICON in tree TOOLBAR */ +#define TO_INFO 11 /* CICON in tree TOOLBAR */ +#define TO_HELP 10 /* CICON in tree TOOLBAR */ +#define TO_REFERENCES 9 /* CICON in tree TOOLBAR */ +#define TO_KATALOG 8 /* CICON in tree TOOLBAR */ +#define TO_INDEX 7 /* CICON in tree TOOLBAR */ +#define TO_NEXT 6 /* CICON in tree TOOLBAR */ +#define TO_HOME 5 /* CICON in tree TOOLBAR */ +#define TO_PREVIOUS 4 /* CICON in tree TOOLBAR */ +#define TO_MEMORY 3 /* CICON in tree TOOLBAR */ +#define TO_MOREBACK 2 /* CICON in tree TOOLBAR */ +#define TO_BACK 1 /* CICON in tree TOOLBAR */ + +#define CONTEXT 2 /* form/dial */ +#define CO_BACK 1 /* STRING in tree CONTEXT */ +#define CO_COPY 2 /* STRING in tree CONTEXT */ +#define CO_PASTE 3 /* STRING in tree CONTEXT */ +#define CO_SELECT_ALL 5 /* STRING in tree CONTEXT */ +#define CO_SAVE 7 /* STRING in tree CONTEXT */ +#define CO_PRINT 8 /* STRING in tree CONTEXT */ +#define CO_DELETE_STACK 9 /* STRING in tree CONTEXT */ + +#define EMPTYPOPUP 3 /* form/dial */ +#define EM_BACK 0 /* BOX in tree EMPTYPOPUP */ +#define EM_1 1 /* STRING in tree EMPTYPOPUP */ +#define EM_2 2 /* STRING in tree EMPTYPOPUP */ +#define EM_3 3 /* STRING in tree EMPTYPOPUP */ +#define EM_4 4 /* STRING in tree EMPTYPOPUP */ +#define EM_5 5 /* STRING in tree EMPTYPOPUP */ +#define EM_6 6 /* STRING in tree EMPTYPOPUP */ +#define EM_7 7 /* STRING in tree EMPTYPOPUP */ +#define EM_8 8 /* STRING in tree EMPTYPOPUP */ +#define EM_9 9 /* STRING in tree EMPTYPOPUP */ +#define EM_10 10 /* STRING in tree EMPTYPOPUP */ +#define EM_11 11 /* STRING in tree EMPTYPOPUP */ +#define EM_12 12 /* STRING in tree EMPTYPOPUP */ + +#define PROGINFO 4 /* form/dial */ +#define PROG_OK 5 /* BUTTON in tree PROGINFO */ +#define PROG_NAME 6 /* STRING in tree PROGINFO */ +#define PROG_DATEI 7 /* STRING in tree PROGINFO */ +#define PROG_THEMA 8 /* STRING in tree PROGINFO */ +#define PROG_AUTOR 9 /* STRING in tree PROGINFO */ +#define PROG_VERSION 10 /* STRING in tree PROGINFO */ +#define PROG_DATE 11 /* STRING in tree PROGINFO */ + +#define SEARCH_RESULT 5 /* form/dial */ +#define SR_FSTL_UP 1 /* BOXCHAR in tree SEARCH_RESULT */ +#define SR_FSTL_BACK 2 /* BOX in tree SEARCH_RESULT */ +#define SR_FSTL_WHITE 3 /* BOX in tree SEARCH_RESULT */ +#define SR_FSTL_DOWN 4 /* BOXCHAR in tree SEARCH_RESULT */ +#define SR_BOX 5 /* IBOX in tree SEARCH_RESULT */ +#define SR_FSTL_0 6 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_1 7 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_2 8 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_3 9 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_4 10 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_5 11 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_6 12 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_7 13 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_8 14 /* TEXT in tree SEARCH_RESULT */ +#define SR_FSTL_9 15 /* TEXT in tree SEARCH_RESULT */ +#define SR_ABORT 16 /* BUTTON in tree SEARCH_RESULT */ + +#define HYPFIND 6 /* form/dial */ +#define HYPFIND_STRING 2 /* FTEXT in tree HYPFIND */ +#define HYPFIND_TEXT 3 /* BUTTON in tree HYPFIND */ +#define HYPFIND_PAGES 4 /* BUTTON in tree HYPFIND */ +#define HYPFIND_REF 5 /* BUTTON in tree HYPFIND */ +#define HYPFIND_ABORT 6 /* BUTTON in tree HYPFIND */ +#define HYPFIND_ALL_PAGE 7 /* BUTTON in tree HYPFIND */ +#define HYPFIND_ALL_HYP 8 /* BUTTON in tree HYPFIND */ + +#define WARN_FEXIST 0 /* Alert string */ + +#define WARN_ERASEMARK 1 /* Alert string */ + +#define ASK_SETMARK 2 /* Alert string */ + +#define ASK_SAVEMARKFILE 3 /* Alert string */ + +#define WARN_NORESULT 4 /* Alert string */ + +#define FSLX_LOAD 5 /* Free string */ + +#define FSLX_SAVE 6 /* Free string */ Index: bubble/bgh.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/bubble/bgh.c,v retrieving revision 1.3 diff -u -r1.3 bgh.c --- bubble/bgh.c 6 Apr 2008 15:47:03 -0000 1.3 +++ bubble/bgh.c 31 Aug 2009 09:34:20 -0000 @@ -1,373 +1,373 @@ -#include -#include -#include -#ifdef __GNUC__ - #include - #include - - /* Mxalloc mode: global memory */ - #define MX_GLOBAL (2<<4) -#else - #include -#endif -#include -#include "bubble.h" -#include "bgh.h" - -#define BGH_MAGIC 0x23424748L - -#define IS_SPACE(a) ((a=3D=3D' ') || (a=3D=3D'\t')) -#define IS_EOL(a) ((a=3D=3D10) || (a=3D=3D13)) -#define IS_NUMBER(a) ((a>=3D'0') && (a<=3D'9')) - -#ifndef TRUE - #define TRUE 1 - #define FALSE 0 -#endif - -struct bgh_group; -struct bgh_object; - -typedef struct -{ - struct bgh_group *section[4]; -}BGH_head; - -typedef struct bgh_group -{ - int index; - struct bgh_group *next; - struct bgh_object *first; - char *help_string; -}BGH_group; - -typedef struct bgh_object -{ - int index; - struct bgh_object *next; - char *help_string; -}BGH_object; - - -char *Goto_Lineend(char *ptr); -char *Skip_Lineend(char *ptr); -char *Skip_Spaces(char *ptr); -char *Skip_Number(char *ptr); -void Debug(char *str,...); - - - -void *BGH_load(const char *Name) -{ -long ret,len; -int handle,not_good=3DFALSE,i,sect=3D0; -BGH_head *head; -BGH_group *group=3DNULL,*new_group; -BGH_object *obj=3DNULL,*new_obj; -char *read,*write=3DNULL; - ret=3DFopen(Name,O_RDONLY); - if(ret<0) - return NULL; -=09 - handle=3D(int)ret; - len=3DFseek(0,handle,2); - Fseek(0,handle,0); -=09 - if(lensection[i]=3DNULL; - =09 - while(*read) - { - read=3DGoto_Lineend(read); /* Zeilenende suchen */ - read=3DSkip_Lineend(read); /* zur naechsten Zeile gehen */ - - if(*read) - { - if(*read=3D=3D'#') - { - read++; - read=3DSkip_Spaces(read); - - if(IS_NUMBER(*read)) /* Objekt gefunden */ - { - if(group) - { - new_obj=3D(BGH_object *)write; - write+=3Dsizeof(BGH_object); -=09 - new_obj->next=3DNULL; - new_obj->help_string=3DNULL; - new_obj->index=3Datoi(read); - =09 - read=3DSkip_Number(read); - read=3DSkip_Spaces(read); - =09 - if(obj && *read=3D=3D'^') - /* Referenz zum vorherigen Objekt ? */ - { - new_obj->help_string=3Dobj->help_string; - } - else if(head->section[3] && *read=3D=3D'>') - /* Referenz zum Objekt mit folgender Nummer */ - { - BGH_group *ref_group=3Dhead->section[3]; - while(ref_group && ref_group->index!=3D0) - ref_group=3Dref_group->next; - =09 - if(ref_group) - { - BGH_object *ref_obj=3Dref_group->first; - read++; - i=3Datoi(read); - read=3DSkip_Number(read); - while(ref_obj && ref_obj->index!=3Di) - ref_obj=3Dref_obj->next; - - if(ref_obj) - new_obj->help_string=3Dref_obj->help_string; - } =09 - } - else if(!IS_EOL(*read)) - /* Normaler Hilfe-String folgt */ - { - new_obj->help_string=3Dwrite; - while(*read && !IS_EOL(*read)) - *write++=3D*read++; - *write++=3D0; - - /* 68000er Bug (keine WORD/LONG Zugriffe=20 - auf ungerade Adressen) */ - if((long)write & 1) - write++; - } - =09 - if(group->first) - { - obj=3Dgroup->first; - while(obj->next) - obj=3Dobj->next; - obj->next=3Dnew_obj; - } - else - group->first=3Dnew_obj; - obj=3Dnew_obj; - } - } - else - { - const char *ptr =3D "N/A"; - i=3D0; - switch(*read) - { - case 'd': - case 'D': - i=3D4; - ptr=3D"dial"; - sect=3D0; - break; - case 'a': - case 'A': - i=3D5; - ptr=3D"alert"; - sect=3D1; - break; - case 'u': - case 'U': - i=3D4; - ptr=3D"user"; - sect=3D2; - break; - case 'm': - case 'M': - i=3D4; - ptr=3D"more"; - sect=3D3; - break; - } - /* Gruppe gefunden ?? */ - if(i && !strnicmp(read,ptr,i)) - { - read+=3Di; - read=3DSkip_Spaces(read); -=09 - new_group=3D(BGH_group *)write; - write+=3Dsizeof(BGH_group); -=09 - new_group->next=3DNULL; - new_group->first=3DNULL; - new_group->index=3Datoi(read); - read=3DSkip_Number(read); - if(IS_SPACE(*read)) - { - read=3DSkip_Spaces(read); - new_group->help_string=3Dwrite; - while(*read && !IS_EOL(*read)) - *write++=3D*read++; - *write++=3D0; - - /* 68000er Bug (keine WORD/LONG Zugriffe=20 - auf ungerade Adressen) */ - if((long)write & 1) - write++; - } - else - new_group->help_string=3DNULL; - =09 - if(head->section[sect]) - { - group=3Dhead->section[sect]; - while(group->next) - group=3Dgroup->next; - group->next=3Dnew_group; - } - else - head->section[sect]=3Dnew_group; - group=3Dnew_group; - obj=3DNULL; - } - } - } - } - } - } - else - not_good=3DTRUE; - =09 - } - else - not_good=3DTRUE; - - if(not_good) - { - Mfree(head); - head=3DNULL; - } - } - Fclose(handle); - - Mshrink(head,(unsigned long)write-(unsigned long)head); - return head; -} - -void BGH_free(void *bgh_handle) -{ - Mfree(bgh_handle); -} - -char *BGH_gethelpstring(void *bgh_handle, int typ, int gruppe, int idx) -{ -BGH_head *head=3Dbgh_handle; -BGH_group *group; -char *help_string=3DNULL; - if(typ<0 || typ>3) - return NULL; -=09 - group=3Dhead->section[typ]; - while(group && group->index!=3Dgruppe) - group=3Dgroup->next; - if(group) - { - BGH_object *obj=3Dgroup->first; - if(idx=3D=3D-1) - { - help_string=3Dgroup->help_string; - } - else - { - while(obj && obj->index!=3Didx) - obj=3Dobj->next; - if(obj) - help_string=3Dobj->help_string; - } - } - return help_string; -} - -void BGH_action(void *bgh_handle, int mx, int my, int typ, int gruppe, i= nt idx) -{ -extern int ap_id; -int bubble_id; -int msg[8]; -char *help_string; -char *path=3DNULL; - - help_string=3DBGH_gethelpstring(bgh_handle, typ, gruppe, idx); - - if(help_string) - { - bubble_id=3Dappl_find("BUBBLE "); - if(bubble_id<0) - { - shel_envrn(&path,"BUBBLEGEM=3D"); - if(path) - { - bubble_id=3Dshel_write(SHW_EXEC,1,SHW_PARALLEL,path,NULL); - evnt_timer(500); - } - } - - if(bubble_id >=3D 0) - { - msg[0]=3DBUBBLEGEM_SHOW; - msg[1]=3Dap_id; - msg[2]=3D0; - msg[3]=3Dmx; - msg[4]=3Dmy; - msg[5]=3D(int)(((long)help_string >> 16) & 0x0000ffff); - msg[6]=3D(int)((long)help_string & 0x0000ffff); - msg[7]=3D0; - if(appl_write(bubble_id, 16, msg) =3D=3D 0) - { - /* Fehler */ - } - } - } -} - - - - - - -char *Goto_Lineend(char *ptr) -{ - while(*ptr && !IS_EOL(*ptr)) - ptr++; - return ptr; -} - -char *Skip_Lineend(char *ptr) -{ - while(*ptr && IS_EOL(*ptr)) - ptr++; - return ptr; -} - -char *Skip_Spaces(char *ptr) -{ - while(*ptr && IS_SPACE(*ptr)) - ptr++; - return ptr; -} - -char *Skip_Number(char *ptr) -{ - while(*ptr && IS_NUMBER(*ptr)) - ptr++; - return ptr; -} +#include +#include +#include +#ifdef __GNUC__ + #include + #include + + /* Mxalloc mode: global memory */ + #define MX_GLOBAL (2<<4) +#else + #include +#endif +#include +#include "bubble.h" +#include "bgh.h" + +#define BGH_MAGIC 0x23424748L + +#define IS_SPACE(a) ((a=3D=3D' ') || (a=3D=3D'\t')) +#define IS_EOL(a) ((a=3D=3D10) || (a=3D=3D13)) +#define IS_NUMBER(a) ((a>=3D'0') && (a<=3D'9')) + +#ifndef TRUE + #define TRUE 1 + #define FALSE 0 +#endif + +struct bgh_group; +struct bgh_object; + +typedef struct +{ + struct bgh_group *section[4]; +}BGH_head; + +typedef struct bgh_group +{ + int index; + struct bgh_group *next; + struct bgh_object *first; + char *help_string; +}BGH_group; + +typedef struct bgh_object +{ + int index; + struct bgh_object *next; + char *help_string; +}BGH_object; + + +char *Goto_Lineend(char *ptr); +char *Skip_Lineend(char *ptr); +char *Skip_Spaces(char *ptr); +char *Skip_Number(char *ptr); +void Debug(char *str,...); + + + +void *BGH_load(const char *Name) +{ +long ret,len; +int handle,not_good=3DFALSE,i,sect=3D0; +BGH_head *head; +BGH_group *group=3DNULL,*new_group; +BGH_object *obj=3DNULL,*new_obj; +char *read,*write=3DNULL; + ret=3DFopen(Name,O_RDONLY); + if(ret<0) + return NULL; +=09 + handle=3D(int)ret; + len=3DFseek(0,handle,2); + Fseek(0,handle,0); +=09 + if(lensection[i]=3DNULL; + =09 + while(*read) + { + read=3DGoto_Lineend(read); /* Zeilenende suchen */ + read=3DSkip_Lineend(read); /* zur naechsten Zeile gehen */ + + if(*read) + { + if(*read=3D=3D'#') + { + read++; + read=3DSkip_Spaces(read); + + if(IS_NUMBER(*read)) /* Objekt gefunden */ + { + if(group) + { + new_obj=3D(BGH_object *)write; + write+=3Dsizeof(BGH_object); +=09 + new_obj->next=3DNULL; + new_obj->help_string=3DNULL; + new_obj->index=3Datoi(read); + =09 + read=3DSkip_Number(read); + read=3DSkip_Spaces(read); + =09 + if(obj && *read=3D=3D'^') + /* Referenz zum vorherigen Objekt ? */ + { + new_obj->help_string=3Dobj->help_string; + } + else if(head->section[3] && *read=3D=3D'>') + /* Referenz zum Objekt mit folgender Nummer */ + { + BGH_group *ref_group=3Dhead->section[3]; + while(ref_group && ref_group->index!=3D0) + ref_group=3Dref_group->next; + =09 + if(ref_group) + { + BGH_object *ref_obj=3Dref_group->first; + read++; + i=3Datoi(read); + read=3DSkip_Number(read); + while(ref_obj && ref_obj->index!=3Di) + ref_obj=3Dref_obj->next; + + if(ref_obj) + new_obj->help_string=3Dref_obj->help_string; + } =09 + } + else if(!IS_EOL(*read)) + /* Normaler Hilfe-String folgt */ + { + new_obj->help_string=3Dwrite; + while(*read && !IS_EOL(*read)) + *write++=3D*read++; + *write++=3D0; + + /* 68000er Bug (keine WORD/LONG Zugriffe=20 + auf ungerade Adressen) */ + if((long)write & 1) + write++; + } + =09 + if(group->first) + { + obj=3Dgroup->first; + while(obj->next) + obj=3Dobj->next; + obj->next=3Dnew_obj; + } + else + group->first=3Dnew_obj; + obj=3Dnew_obj; + } + } + else + { + const char *ptr =3D "N/A"; + i=3D0; + switch(*read) + { + case 'd': + case 'D': + i=3D4; + ptr=3D"dial"; + sect=3D0; + break; + case 'a': + case 'A': + i=3D5; + ptr=3D"alert"; + sect=3D1; + break; + case 'u': + case 'U': + i=3D4; + ptr=3D"user"; + sect=3D2; + break; + case 'm': + case 'M': + i=3D4; + ptr=3D"more"; + sect=3D3; + break; + } + /* Gruppe gefunden ?? */ + if(i && !strnicmp(read,ptr,i)) + { + read+=3Di; + read=3DSkip_Spaces(read); +=09 + new_group=3D(BGH_group *)write; + write+=3Dsizeof(BGH_group); +=09 + new_group->next=3DNULL; + new_group->first=3DNULL; + new_group->index=3Datoi(read); + read=3DSkip_Number(read); + if(IS_SPACE(*read)) + { + read=3DSkip_Spaces(read); + new_group->help_string=3Dwrite; + while(*read && !IS_EOL(*read)) + *write++=3D*read++; + *write++=3D0; + + /* 68000er Bug (keine WORD/LONG Zugriffe=20 + auf ungerade Adressen) */ + if((long)write & 1) + write++; + } + else + new_group->help_string=3DNULL; + =09 + if(head->section[sect]) + { + group=3Dhead->section[sect]; + while(group->next) + group=3Dgroup->next; + group->next=3Dnew_group; + } + else + head->section[sect]=3Dnew_group; + group=3Dnew_group; + obj=3DNULL; + } + } + } + } + } + } + else + not_good=3DTRUE; + =09 + } + else + not_good=3DTRUE; + + if(not_good) + { + Mfree(head); + head=3DNULL; + } + } + Fclose(handle); + + Mshrink(head,(unsigned long)write-(unsigned long)head); + return head; +} + +void BGH_free(void *bgh_handle) +{ + Mfree(bgh_handle); +} + +char *BGH_gethelpstring(void *bgh_handle, int typ, int gruppe, int idx) +{ +BGH_head *head=3Dbgh_handle; +BGH_group *group; +char *help_string=3DNULL; + if(typ<0 || typ>3) + return NULL; +=09 + group=3Dhead->section[typ]; + while(group && group->index!=3Dgruppe) + group=3Dgroup->next; + if(group) + { + BGH_object *obj=3Dgroup->first; + if(idx=3D=3D-1) + { + help_string=3Dgroup->help_string; + } + else + { + while(obj && obj->index!=3Didx) + obj=3Dobj->next; + if(obj) + help_string=3Dobj->help_string; + } + } + return help_string; +} + +void BGH_action(void *bgh_handle, int mx, int my, int typ, int gruppe, i= nt idx) +{ +extern int ap_id; +int bubble_id; +int msg[8]; +char *help_string; +char *path=3DNULL; + + help_string=3DBGH_gethelpstring(bgh_handle, typ, gruppe, idx); + + if(help_string) + { + bubble_id=3Dappl_find("BUBBLE "); + if(bubble_id<0) + { + shel_envrn(&path,"BUBBLEGEM=3D"); + if(path) + { + bubble_id=3Dshel_write(SHW_EXEC,1,SHW_PARALLEL,path,NULL); + evnt_timer(500); + } + } + + if(bubble_id >=3D 0) + { + msg[0]=3DBUBBLEGEM_SHOW; + msg[1]=3Dap_id; + msg[2]=3D0; + msg[3]=3Dmx; + msg[4]=3Dmy; + msg[5]=3D(int)(((long)help_string >> 16) & 0x0000ffff); + msg[6]=3D(int)((long)help_string & 0x0000ffff); + msg[7]=3D0; + if(appl_write(bubble_id, 16, msg) =3D=3D 0) + { + /* Fehler */ + } + } + } +} + + + + + + +char *Goto_Lineend(char *ptr) +{ + while(*ptr && !IS_EOL(*ptr)) + ptr++; + return ptr; +} + +char *Skip_Lineend(char *ptr) +{ + while(*ptr && IS_EOL(*ptr)) + ptr++; + return ptr; +} + +char *Skip_Spaces(char *ptr) +{ + while(*ptr && IS_SPACE(*ptr)) + ptr++; + return ptr; +} + +char *Skip_Number(char *ptr) +{ + while(*ptr && IS_NUMBER(*ptr)) + ptr++; + return ptr; +} Index: bubble/bgh.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/bubble/bgh.h,v retrieving revision 1.1 diff -u -r1.1 bgh.h --- bubble/bgh.h 12 Feb 2006 15:17:59 -0000 1.1 +++ bubble/bgh.h 31 Aug 2009 09:34:20 -0000 @@ -1,14 +1,14 @@ -#ifndef _BGH_H_ -#define _BGH_H_ - -#define BGH_DIAL 0 -#define BGH_ALERT 1 -#define BGH_USER 2 -#define BGH_MORE 3 - -void *BGH_load(const char *Name); -void BGH_free(void *bgh_handle); -char *BGH_gethelpstring(void *bgh_handle, int typ, int gruppe, int idx); -void BGH_action(void *bgh_handle, int mx, int my, int typ, int gruppe, i= nt idx); - -#endif /* _BGH_H_ */ +#ifndef _BGH_H_ +#define _BGH_H_ + +#define BGH_DIAL 0 +#define BGH_ALERT 1 +#define BGH_USER 2 +#define BGH_MORE 3 + +void *BGH_load(const char *Name); +void BGH_free(void *bgh_handle); +char *BGH_gethelpstring(void *bgh_handle, int typ, int gruppe, int idx); +void BGH_action(void *bgh_handle, int mx, int my, int typ, int gruppe, i= nt idx); + +#endif /* _BGH_H_ */ Index: bubble/bubble.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/bubble/bubble.h,v retrieving revision 1.2 diff -u -r1.2 bubble.h --- bubble/bubble.h 6 Apr 2008 15:47:03 -0000 1.2 +++ bubble/bubble.h 31 Aug 2009 09:34:20 -0000 @@ -1,115 +1,115 @@ -/* BUBBLEGEM_REQUEST - Nachricht - * msg[0] $BABA - * msg[1] demonID - * msg[2] 0 - * msg[3] winID - * msg[4] mX - * msg[5] mY - * msg[6] KStat - * msg[7] 0 - */ -#define BUBBLEGEM_REQUEST 0xBABA - -/* BUBBLEGEM_SHOW - Nachricht: - * msg[0] $BABB - * msg[1] ap_id - * msg[2] 0 - * msg[3] Maus X - * msg[4] Maus Y - * msg[5/6] Pointer auf nullterminierte Zeichenkette im globalen - * Speicher - * msg[7] Special-Word (=3DBitfield) - */ -#define BUBBLEGEM_SHOW 0xBABB - - -/* BUBBLEGEM_ACK ($BABC) - * - * msg[0] $BABC - * msg[1] ap_id - * msg[2] 0 - * msg[3] 0 - * msg[4] 0 - * msg[5/6] Pointer aus BUBBLEGEM_SHOW - * msg[7] 0 - */ -#define BUBBLEGEM_ACK 0xBABC - - -/* BUBBLEGEM_ASKFONT ($BABD) - * msg[0] =3D $BABD; - * msg[1] =3D apID; - * msg[2] =3D 0; - * msg[3] =3D 0; - * msg[4] =3D 0; - * msg[5] =3D 0; - * msg[6] =3D 0; - * msg[7] =3D 0; - */ -#define BUBBLEGEM_ASKFONT 0xbabd; - -/* BUBBLEGEM_FONT ($BABE) - * msg[0] =3D $BABE; - * msg[1] =3D apID; - * msg[2] =3D 0; - * msg[3] =3D FontID; - * msg[4] =3D FontPt; - * msg[5] =3D 0; - * msg[6] =3D 0; - * msg[7] =3D 0; - */ -#define BUBBLEGEM_FONT 0xbabe; - - -/* BUBBLEGEM_HIDE ($BABF) - * msg[0] =3D $BABF; - * msg[1] =3D apID; - * msg[2] =3D 0; - * msg[3] =3D ?; - * msg[4] =3D ?; - * msg[5] =3D ?; - * msg[6] =3D ?; - * msg[7] =3D ?; - */ -#define BUBBLEGEM_HIDE 0xBABF; - - -/* - * Daten fuer das Special-Word von BUBBLEGEM_SHOW - */ -#define BGS7_USRHIDE 0x0001 /* fuer modalen Aufruf noetig */ -#define BGS7_MOUSE 0x0004 /* BubbleGEM benutzt die Koordinaten nur=20 - zum Zeichnen */ - - -/* - * BGEM Cookie=09 - */ -typedef struct -{ - long magic; /* 'BGEM' */ - long size; /* Groesse dieser Struktur, derzeit 18 */ - int release; /* derzeit 6, nie kleiner als 5 */ - int active; /* <>0, wenn gerade eine Hilfe angezeigt wird; - 0 sonst */ - MFORM *mhelp; /* Zeiger auf Hilfe-Mausform */ - int dtimer; /* Daemon-Timer; Default 200ms; ab Release 6 */ -}BGEM; - - -/* BHLP-Cookie: - * BubbleGEM wertet den Cookie "BHLP" aus. Im oberen Word ist die Dauer=20 - * der Mindest-Sichtbarkeit eingetragen, Standard sind 200 Millisekunden= . - * Das untere Word ist eine Bitmap; ist Bit 0 ($0001 =3D BGC_FONTCHANGED= )=20 - * gesetzt, so bedeutet dies, dass FONT_CHANGED ausgewertet wird. Ist=20 - * BGC_NOWINSTYLE ($0002) (lies: no-win-style, nicht now-in-style)=20 - * gesetzt, so wird die Hilfe als Sprechblase dargestellt (d.h. ein=20 - * geloeschtes Bit entspricht der Windows-Hilfe!). Ein gesetztes Bit bei= =20 - * BGC_SENDKEY ($0004) bewirkt, dass nach Schliessen der Hilfe durch ein= en=20 - * Tastendruck AV_SENDKEY an den Aufrufer geschickt wird. BGC_DEMONACTIV= E - * ($0008) bewirkt, dass Daemon eingeschaltet ist. - */ -#define BGC_FONTCHANGED 0x0001 -#define BGC_NOWINSTYLE 0x0002 -#define BGC_SENDKEY 0x0004 -#define BGC_DEMONACTIVE 0x0004 +/* BUBBLEGEM_REQUEST - Nachricht + * msg[0] $BABA + * msg[1] demonID + * msg[2] 0 + * msg[3] winID + * msg[4] mX + * msg[5] mY + * msg[6] KStat + * msg[7] 0 + */ +#define BUBBLEGEM_REQUEST 0xBABA + +/* BUBBLEGEM_SHOW - Nachricht: + * msg[0] $BABB + * msg[1] ap_id + * msg[2] 0 + * msg[3] Maus X + * msg[4] Maus Y + * msg[5/6] Pointer auf nullterminierte Zeichenkette im globalen + * Speicher + * msg[7] Special-Word (=3DBitfield) + */ +#define BUBBLEGEM_SHOW 0xBABB + + +/* BUBBLEGEM_ACK ($BABC) + * + * msg[0] $BABC + * msg[1] ap_id + * msg[2] 0 + * msg[3] 0 + * msg[4] 0 + * msg[5/6] Pointer aus BUBBLEGEM_SHOW + * msg[7] 0 + */ +#define BUBBLEGEM_ACK 0xBABC + + +/* BUBBLEGEM_ASKFONT ($BABD) + * msg[0] =3D $BABD; + * msg[1] =3D apID; + * msg[2] =3D 0; + * msg[3] =3D 0; + * msg[4] =3D 0; + * msg[5] =3D 0; + * msg[6] =3D 0; + * msg[7] =3D 0; + */ +#define BUBBLEGEM_ASKFONT 0xbabd; + +/* BUBBLEGEM_FONT ($BABE) + * msg[0] =3D $BABE; + * msg[1] =3D apID; + * msg[2] =3D 0; + * msg[3] =3D FontID; + * msg[4] =3D FontPt; + * msg[5] =3D 0; + * msg[6] =3D 0; + * msg[7] =3D 0; + */ +#define BUBBLEGEM_FONT 0xbabe; + + +/* BUBBLEGEM_HIDE ($BABF) + * msg[0] =3D $BABF; + * msg[1] =3D apID; + * msg[2] =3D 0; + * msg[3] =3D ?; + * msg[4] =3D ?; + * msg[5] =3D ?; + * msg[6] =3D ?; + * msg[7] =3D ?; + */ +#define BUBBLEGEM_HIDE 0xBABF; + + +/* + * Daten fuer das Special-Word von BUBBLEGEM_SHOW + */ +#define BGS7_USRHIDE 0x0001 /* fuer modalen Aufruf noetig */ +#define BGS7_MOUSE 0x0004 /* BubbleGEM benutzt die Koordinaten nur=20 + zum Zeichnen */ + + +/* + * BGEM Cookie=09 + */ +typedef struct +{ + long magic; /* 'BGEM' */ + long size; /* Groesse dieser Struktur, derzeit 18 */ + int release; /* derzeit 6, nie kleiner als 5 */ + int active; /* <>0, wenn gerade eine Hilfe angezeigt wird; + 0 sonst */ + MFORM *mhelp; /* Zeiger auf Hilfe-Mausform */ + int dtimer; /* Daemon-Timer; Default 200ms; ab Release 6 */ +}BGEM; + + +/* BHLP-Cookie: + * BubbleGEM wertet den Cookie "BHLP" aus. Im oberen Word ist die Dauer=20 + * der Mindest-Sichtbarkeit eingetragen, Standard sind 200 Millisekunden= . + * Das untere Word ist eine Bitmap; ist Bit 0 ($0001 =3D BGC_FONTCHANGED= )=20 + * gesetzt, so bedeutet dies, dass FONT_CHANGED ausgewertet wird. Ist=20 + * BGC_NOWINSTYLE ($0002) (lies: no-win-style, nicht now-in-style)=20 + * gesetzt, so wird die Hilfe als Sprechblase dargestellt (d.h. ein=20 + * geloeschtes Bit entspricht der Windows-Hilfe!). Ein gesetztes Bit bei= =20 + * BGC_SENDKEY ($0004) bewirkt, dass nach Schliessen der Hilfe durch ein= en=20 + * Tastendruck AV_SENDKEY an den Aufrufer geschickt wird. BGC_DEMONACTIV= E + * ($0008) bewirkt, dass Daemon eingeschaltet ist. + */ +#define BGC_FONTCHANGED 0x0001 +#define BGC_NOWINSTYLE 0x0002 +#define BGC_SENDKEY 0x0004 +#define BGC_DEMONACTIVE 0x0004 Index: bubble/history.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/bubble/history.txt,v retrieving revision 1.2 diff -u -r1.2 history.txt --- bubble/history.txt 6 Apr 2008 15:47:03 -0000 1.2 +++ bubble/history.txt 31 Aug 2009 09:34:20 -0000 @@ -1,24 +1,24 @@ -BGH-Lade Routinen ------------------ -22.07.2001 - Erste selbst geschriebene Laderoutinen fuer BGH-Hilfedateien (=3DBubb= leGEM - Hilfedateien). (hoffentlich) Kompatibel zur BGH Definition von Armin - Diedering (v1.1). Keine Unterstuetzung der Cookie-Schnittstelle oder - Shared-Libraries! Kein Binaerformat. - Warum? Weil ich das fuer Humbug halte! - Unterstuetzt Referenzen: - "^" zeigt auf den Hilfetext des vorherigen Objekts - ">" gefolgt von einer Nummer zeigt auf das Objekt mit dieser Numme= r, - welches sich in der MORE Sektion befindet! -13.11.2001 - Bugfix: Beim Laden der BGH Datei wurde nicht darauf geachtet, ob der - allozierte Speicher auf einer geraden oder ungeraden Adresse zu liege= n - kam. --> Absturz auf 68000ern. - - - -Philipp Donze -Rue de Sadaz 5 -1373 Chavornay -Schweiz - +BGH-Lade Routinen +----------------- +22.07.2001 + Erste selbst geschriebene Laderoutinen fuer BGH-Hilfedateien (=3DBubb= leGEM + Hilfedateien). (hoffentlich) Kompatibel zur BGH Definition von Armin + Diedering (v1.1). Keine Unterstuetzung der Cookie-Schnittstelle oder + Shared-Libraries! Kein Binaerformat. + Warum? Weil ich das fuer Humbug halte! + Unterstuetzt Referenzen: + "^" zeigt auf den Hilfetext des vorherigen Objekts + ">" gefolgt von einer Nummer zeigt auf das Objekt mit dieser Numme= r, + welches sich in der MORE Sektion befindet! +13.11.2001 + Bugfix: Beim Laden der BGH Datei wurde nicht darauf geachtet, ob der + allozierte Speicher auf einer geraden oder ungeraden Adresse zu liege= n + kam. --> Absturz auf 68000ern. + + + +Philipp Donze +Rue de Sadaz 5 +1373 Chavornay +Schweiz + Index: bubble/test.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/bubble/test.c,v retrieving revision 1.1 diff -u -r1.1 test.c --- bubble/test.c 12 Feb 2006 15:17:59 -0000 1.1 +++ bubble/test.c 31 Aug 2009 09:34:20 -0000 @@ -1,14 +1,14 @@ -#include -#include - -void main(void) -{ -void *help; - help=3DBGH_load("TEST.BGH"); - Cconws(BGH_gethelpstring(help,BGH_DIAL,0,56)); - Cconws("\r\n"); - Cconws(BGH_gethelpstring(help,BGH_MORE,0,44)); - Cconws("\r\n"); - BGH_free(help); - Cnecin(); +#include +#include + +void main(void) +{ +void *help; + help=3DBGH_load("TEST.BGH"); + Cconws(BGH_gethelpstring(help,BGH_DIAL,0,56)); + Cconws("\r\n"); + Cconws(BGH_gethelpstring(help,BGH_MORE,0,44)); + Cconws("\r\n"); + BGH_free(help); + Cnecin(); } \ No newline at end of file Index: doc/anleitun.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/doc/anleitun.txt,v retrieving revision 1.2 diff -u -r1.2 anleitun.txt --- doc/anleitun.txt 6 Apr 2008 15:47:03 -0000 1.2 +++ doc/anleitun.txt 31 Aug 2009 09:34:20 -0000 @@ -1,12 +1,12 @@ -- Klick auf einen ungenutzten Eintrag: eine Alert-Box fragt ob man eine - Marke setzen will. - -- Klick auf einen gesetzten Eintrag stellt diesen im aktuellen Fenster d= ar. - -- CTRL-Klick auf einen gesetzten Eintrag oeffnet diese Marke in einem - neuen Fenster. - -- Shift-Klick auf einen Eintrag setzt stehts eine Marke. (ST-GUIDE - kompatibel) - -- ALT-Klick auf einen gesetzten Eintrag fragt ob man diesen Loeschen wil= l. +- Klick auf einen ungenutzten Eintrag: eine Alert-Box fragt ob man eine + Marke setzen will. + +- Klick auf einen gesetzten Eintrag stellt diesen im aktuellen Fenster d= ar. + +- CTRL-Klick auf einen gesetzten Eintrag oeffnet diese Marke in einem + neuen Fenster. + +- Shift-Klick auf einen Eintrag setzt stehts eine Marke. (ST-GUIDE + kompatibel) + +- ALT-Klick auf einen gesetzten Eintrag fragt ob man diesen Loeschen wil= l. Index: doc/history.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/doc/history.txt,v retrieving revision 1.2 diff -u -r1.2 history.txt --- doc/history.txt 6 Apr 2008 15:47:03 -0000 1.2 +++ doc/history.txt 31 Aug 2009 09:34:21 -0000 @@ -1,939 +1,939 @@ -History for HypView (v0.35.3e) -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -10.02.2006 (v0.35.3e) - -Modified for gemlib. [ozk] - -Ported to gcc. [ozk] - -Initial CVS revision. [ozk] - -Many changes to fix problems with different sized fonts [ozk] - -17.09.2005 (v0.35.2e) - -ALT-E Stack lschen (Men -> Stack lschen) [GS] - -20.08.2005 - -Iconifizieren des Infodialogs [GS] -=09 -14.08.2005 - -Scrollweite mit entspricht - + [GS] - -Ctrl-Cursor hoch/links - zur vorigen Seite blaettern [GS] - -Ctrl-Cursor runter/rechts - zur nchsten Seite blaettern [GS] - -14.08.2005 - -Ist das Dokument fuer das erste Fenster nicht mehr vorhanden, war - keine Benutzung von HypView mehr mglich. [GS] - -12.08.2005 (v0.35.2d) - -Ist WDIALOG nicht vorhanden, sind einige Icons der Toolbar nicht - bedienbar. [GS] - -Neue VDI.LIB, damit keine Probleme mehr mit PlainTOS und Texten - mit Umlauten. - -10.08.2005 (v0.35.2c) - -Der Inhalt des letzten Fensters wird beim Oeffnen des ersten Fenster - wieder dargestellt. - -09.08.2005 (v0.35.2b) - -Wird beim Markenpfad am Anfang '$HOME\' angeben, versucht HypView - die Marken vom Homeverzeichnis zuladen. - z.B.: MARKFILE=3D$HOME\MARKEN.DAT - -31.07.2005 - -Fehler bei der Ausgabe der Popups unter N.AES 1.2.0 behoben. [GS] - -27.07.2005 - -Bei den Marken erscheinen die Dateinamen von denen sie stammen. Dazu - muessen sie aber neu gesetzt werden [GS] - -09.04.2005 - -Im Info-Dialog wird das Erstellungsdatum von HypView angezeigt. [GS] - -03.03.2005 - -Mit dem Schluesselwort REFONLY kann bestimmt werden ob bei einem Klick - mit der linken Maustaste nur Verweise verfolgt werden oder auch - nicht-markierte Worte. [GS] - -Ist ein alternativer Skin geladen, konnte es beim Umschalten zum - "Autolocator" zu einem haesslichen weissen Fleck kommen. [GS] - -02.03.2005 - -Im Info-Dialog wird neben der Programmversion nun auch relevante - Informationen zur aktuell Datei angezeigt. [GS] - -Die MagiC Dateiauswahl bekommt jetzt ein sinnvolles Dateimuster. [GS] - -05.02.2005 (v0.35.2) - -Workaround: Bug in XaAES fuehrte dazu dass HypView bei einer=20 - VA_START-Meldung in eine Endlos-Schleife verfiel. - (In XaAES liefert wind_get(WF_OWNER) fuer den "open status" immer 0). - -30.01.2005 (v0.35.1) - -Marken implementiert: Damit ist es nun moeglich bis zu 10 "Favoriten" - zu speichern. Die Marken werden in der mit MARKFILE spezifizierten - Datei gespeichert. Es kann die gleiche Datei wie bei ST-GUIDE - verwendet werden, da das Format kompatibel ist. [GS] - -Mit dem MARKFILE_SAVE_ASK kann die laestige Frage, ob die Marken-Datei - gespeichert werden soll, deaktiviert werden. [GS] - -Bugfix: Zeichenfehler bei den Popup-Mens unter XaAES. - -Falls der Autolocator aktiv ist kann mittels CTRL+V Text aus dem - Klemmbrett eingefuegt werden. - -Pure C-Hilfe Protokoll (AC_HELP Meldung) wird unterstuetzt um nach - Schluesselwoertern zu suchen. - -Suche in der REF Datenbank (mittels REFLINK.TTP generiert) - implementiert [PD+GS]. - Zur Zeit laesst sich nur mittels der Meldung "AC_HELP" eine Suche=20 - ausloesen (also z.B. HypView in QED als Hilfe-Server anmelden und=20 - dann HELP druecken wenn sich der Cursor auf einem Wort befindet. - -28.01.2005 - -Bugfix: Falls ein Programm per VA_START eine Hilfeseite welche ein - Leerzeichen im Titel aufrufen wollte, wurde die Seite nicht gefunden - oder es kam gar zum Absturz. [GS] - -30.12.2004 - -Mit CLIPBRD_NEW_WINDOW kann festgelegt werden ob beim Einfuegen mit - CTRL+V ein neues Fenster geoeffnet wird oder nicht. Bei zusaetzlichem - Druecken von "SHIFT" wird das Gegenteil der gewaehlten Funktion - ausgefuehrt. - -"Skin Laden" funktioniert wieder. Falls kein absoluter Pfad mittels - SKIN angegeben wurde, wird im Verzeichnis "Skins" danach gesucht. - D.h. relative Pfade beziehen sich immer auf das Verzeichnis "Skins" - im Verzeichnis, aus dem HypView gestartet wurde. - -AV_WINDOW_CYCLE aktiviert den globalen Fensterwechsel (via AVSERVER), - d.h. das "CTRL+W" nicht von HypView sondern vom AVSERVER erledigt - wird. Durch zusaetzliches Druecken von "SHIFT" wird das Gegenteil der - Funktion ausgefuehrt. - -19.10.2004 - -File Errors werden in einer Alertbox ausgeben und nicht mehr ber=20 - die Console. [GS] - -16.10.2004 (v0.34.1) - -Neues Versionsnummern Schema: die 3te Zahl steht fuer die Release - -14.10.2004 (v0.34) - -"Zurueck" im Kontext-Men. [GS] - -06.10.2004 - -Wurde per VA_START ein absoluter Pfad angeben und die Datei befindet - sich nicht dort. So erfolgte die Auswertung der Pfadliste nicht=20 - korrekt. [GS] - -30.09.2004 - -Menueicon aktiviert. [GS] - -18.09.2004 - -Bugfix: CTRL+V laedt jetzt wirklich die Datei SCRAP.TXT aus dem=20 - Clipboard. [GS] - -ALT-T Inhalts-Seite zeigen (wie Inhalt-Icon, wie ST-Guide) [GS] - -ALT-X Indexseite zeigen (wie Index-Icon, wie ST-Guide) [GS] - -ALT-K Katalog laden (wie Index-Icon, wie ST-Guide) [GS] - -Bugfix: Erkennung der REF Datei funktionierte nicht immer. [GS] -=09 -10.09.2004 - -Gerhard Stoll interessiert sich fuer den Quellcode von HypView und - will das Programm erweitern. Seine Aenderungen sind mit [GS] markiert. - -Unterstuetzung der Ende Tasten (gibt es z.B. beim Milan). [GS] - -29.01.2004 (v0.33) - -Bugfix: ASCII Texte, die nur eine Zeile ohne CR/LF enthielten, wurden - nicht angezeigt. - -14.01.2004 - -Bugfix: HypView ignorierte die Kapitel-Angabe "Main" fr externe - Referenzen. Dies fuehrte dazu, dass bei Referenzen auf andere Hypertex= ten=20 - nicht die richtige Startseite angezeigt wurde (sichtbar bei KATALOG.HY= P). - -23.12.2003 - -Bugfix: Falls HYP_VIEW.CFG nicht gefunden wurde, wurde faelschlicherwe= ise - versucht ein nicht existierender "Skin" zu laden. - -Bugfix: Die Bestimmung des Bootlaufwerks funktionierte bisher nicht. - -24.11.2003 - -Der Test auf WDIALOG wurde (hoffentlich endgueltig) beseitigt. - -Compiler-Einstellung war beim letzten Release faelschlicherweise auf - 68020 eingestellt. Dadurch lief das Programm unter MagiC PC und auf - "einfachen" STs nicht mehr. - -Laut TOS.HYP fuehrt ein @ am Anfang eines te_ptext (=3Deines Textfelds= )=20 - dazu, dass der Rest als Platzhalter interpretiert wird. - Folge: Falls bei der Suche mit dem "Autolocator" als erstes Zeichen=20 - ein @ eingegeben wird, werden alle Eingaben nicht angezeigt (die Suche - wird jedoch ausgefuehrt!). (MagiC ist jedoch davon nicht betroffen!) - -23.11.2003 - -Der "intelligente Fuller" verschiebt das Fenster (=3Ddie obere linke E= cke - des Fensters) nur noch wenn das vergrsserte Fenster ausserhalb des - sichtbaren Bereichs zu liegen kommt. D.h. beim "Fullen" des Fensters - springt das Fenster nicht mehr automatisch in die obere linke Ecke - des sichtbaren Bereichs. - -17.11.2003 (v0.32) - -Bugfix: Im ACC-Betrieb kam es nach 2maligem ffnen zum Absturz, falls=20 - kein DEFAULT Hypertext angegeben wurde. - -14.11.2003 (v0.31) - -Monochrome Bilder (=3D1 Bitplane) werden jetzt nicht mehr an die Anzah= l - Bitplanes der aktuellen Aufloesung angepasst, sondern einfach monochro= m - gelassen. Sie werden dann mittels vrt_cpyfm() wie beim Original ST-Gui= de - transparent auf den Bildschirm kopiert. (Diese Transparenz kann nicht - mehr mit TRANSPARENT_PICS=3D0 deaktiviert werden!) - -Bugfix: Beim Bilder Laden wurde unter Umstnden zuwenig Speicher - alloziert, was unter MagiC zum System-Absturz fhrte. - -Bugfix: Falls der intelligente "Fuller" deaktiviert wurde, jedoch - die automatische Fenstergrssen-Anpassung aktiviert war, wurde beim - Zeichensatzwechsel das Fenster auf max. Bildschirmgrsse vergrssert. - -Beim Zeichensatzwechsel (=3DCTRL+Z) wird nun sichergestellt, dass die - Seite gut sichtbar ist, d.h. es wird wenn ntig nach Oben gescrollt. - -10.11.2003 (v0.30) - -Intelligenteres vergrssern/verkleinern beim Zeichensatz-Wechsel - -Das "intelligente" vergrssern des Fensters auf die maximale Dokument- - grsse lsst sich nun mit dem Tag INTELLIGENT_FULLER=3D0 deaktivieren. - Dadurch wird die maximale Fenstergrsse auf Bildschirmgrsse gesetzt. - -09.11.2003 - -Falls WINADJUST=3D0 ist, wird trotzdem beim Zeichensatz-Wechsel die - Fensterbreite/-hhe angepasst (=3D"eingerastet"). - -Zeichen, die eine Zusatz-Taste (wie CTRL, ALT) zur Eingabe bentigen, - lassen sich nun auch in den Autolocator eingeben. - -04.11.2003 - -Bugfix: AV-Protokoll wird nun auch beim Start als ACC initialisiert. - -2 maliges Drcken von ESC deaktiviert und versteckt das Eingabe-Feld - des "Autolocator". Dadurch muss nicht mehr mit einem Mausklick das - Eingabe-Feld "weg-geklickt" werden. - -20.09.2003 (v0.29) - -Der Umbruch von Text-Dateien ist nun mittels "ASCII_BREAK=3D" in der - HYP_VIEW.CFG konfigurierbar. D.h. HypView bricht eine sehr lange - Zeile um, sobald die angegebene Anzahl von Zeichen erreicht wurde. - -Der Umbruch von Text-Zeilen ist erfolgt wenn mglich bei einem - Leerzeichen oder Tab-Zeichen. (Hallo Sascha :-)) - -02.09.2003 - -Bug "Endloses scrollen bei der Selektion" beseitigt - -29.08.2003 - -Debugging-Ausgabe bei der Selektion entfernt :-) - -07.08.2003 - -Fehler bei der Selektion entfernt - -04.08.2003 (v0.28) - -Untersttzung fr alternative Toolbars bzw. Skins eingebaut (Variable - SKIN zeigt auf die gewnschte RSC Datei im "Skins" Verzeichnis) - Gunnar Grbel hat vor einiger Zeit einige erstellt. - -03.08.2003 - -Bugfix: Externe Referenzen mit Kapitelangabe funktionieren wieder. - -Bugfix: Ein (mittels Zurck-Button) entferntes Dokument konnte - beim erneuten ffnen zum Absturz fhren. - -History-Popup mit bis zu 12 Eintrgen eingebaut. - -01.08.2003 - -Untersttzung fr externe Referenzen eingebaut (@xref Tag) - (=3DReferenzen-Popup mit bis zu 12 Eintrgen) - -31.07.2003 (v0.27) - -Unbekannte Dateien, die kein Null-Byte enthalten werden als Text - dargestellt. - -Text-Dateien, mit Zeilen lnger als 127 Zeichen werden umgebrochen. - -Falls eine geladene Datei mittels eines Links geladen wurde, so werden - folgende Dateien auch noch im realen Verzeichnis gesucht. - Beispiel: - "C:\GUIDES\ARCVIEW.HYP" ist ein Link auf "D:\ARCVIEW\ARCVIEW.HYP" - Wird nun auf den Link "HISTORY.TXT" geklickt, so werden folgende - Pfade der Reihe nach berprft: - C:\GUIDES\HISTORY.TXT - D:\ARCVIEW\HISTORY.TXT - HISTORY.TXT - $PATH + HISTORY.TXT - -30.07.2003 - -Bugfix: Darstellungs-Fehler bei sehr langen Seiten/Texten beseitigt. - -Verbesserte System-Integration: Offene Fenster werden in das - "Window-Cycling" des Desktops integriert (mittels AV_ACCWINDOPEN, - AV_ACCWINDCLOSED). - -11.07.2003 - -ASCII-Text-Erkennung: Es werden nun Dateien, die die Zeichen - 1-4 und 16-25 enthalten als ASCII angezeigt. (Obwohl es sich - korrekterweise nicht um ASCII handelt!) - -27.02.2003 - -Bugfix: Falls zu einer REF Datei kein passender HYPertext vorlag, - kam es zum Absturz. - -26.02.2003 (v0.26) - -Untersttzung fr REF Dateien eingebaut. - Wird eine .REF Datei als Pfad bergeben, so wird sie geladen und - die entsprechende .HYP Datei angezeigt. Achtung: Es wird einfach - nur die Dateierweiterung abgendert und nicht der entsprechende - Eintrag in der REF Datei ausgewertet! - -Falls eine Kapitelname im HYPertext nicht existiert, so wird - versucht die entsprechende .REF Datei zu laden. Im Erfolgsfall - wird dann darin nach dem passenden Kapitel gesucht. - -19.01.2003 (v0.25) - -Verffentlichung des aktuellen Standes. - -18.01.2003 - -Arbeiten am automatischen Scrollen whrend der Selektion - absgeschlossen. Folgende Features sind eingebaut: - -gleichzeitiges horizontales und vertikales Scrollen - -nach jedem Scroll-Schritt wird eine Pause von 50 ms gemacht. - Dadurch sollte das Scrollen auch auf schnellen Rechnern brauchbar - sein. - -vertikales Scrollen ist linear Abhngig von der Mausposition. - Das heisst, wenn die Maus weiter aus dem Fenster bewegt wird, wird - auch schneller gescrollt. (64 Pixel =3D 1 Zeile schneller) - -Bugfix: Falls die Katalog-Datei nicht geffnet werden kann, so - wird die Mausform wieder in einen Pfeil zurck gewandelt. - -Bugfix: Beim automatischen Anpassen der Fenstergrsse (WINADJUST=3D1) - wird nun immer die ganze Toolbar angezeigt (=3Dminimale Fensterbreite)= . - -Verbesserungen beim Umgang mit proportionalen Fonts. (Das Fensterraste= r - wird nun als Durchschnitt der Zeichenbreiten von ASCII 32 bis ASCII 15= 4 - berechnet.) - -Bugfix: Es wird nun immer der absolute Pfad einer Datei ermittelt. - (Also auch fr Dateien, die sich im aktuellen Verzeichnis befinden.) - -Das Block-Ende einer Selektion kann nun jederzeit mit SHIFT-Klick - verndert werden. - -Rechtsklick ffnet ein Popup mit den Block-Funktionen. - -Blockfunktionen: - -Speichern von HYP und ASCII Texten im ASCII Format (auch ber die - Toolbar zugnglich). - -CTRL+A whlt den ganzen geladenen Text aus - -CTRL+C kopierte den selektierten Block ins Clipboard. Falls kein - Text selektiert ist, wird der ganze Text kopiert. - -CTRL+V ladet die Datei SCRAP.TXT aus dem Clipboard. (wie ST-Guide) - -xx.01.2003 - -Diverse Arbeiten am automatischen Scrollen whrend der Selektion. - -31.12.2002 - -Bugfix beim automatischen Scrollen. Keine "Lcher" mehr vorhanden. - -18.12.2002 - -Verbesserungen bei der Selektion. - -17.12.2002 - -Autolocator: Leerzeichen am Anfang der Eingabe werden ignoriert. - -Selektion ist nun auch mit proportionalen Zeichenstzen kompatibel. - Bei Bitmap-Zeichenstzen berechnet anscheinend die Funktion - vqt_extent() die Grsse einer leeren Zeichenkette (=3D"") falsch, - falls kursiv als Attribut definiert ist. - -16.12.2002 - -Selektion wieder entfernt. Beginn einer neuen Implementation. - -NEU: Automatisches Scrolling in horizontaler Richtung beim Selektieren= . - -06.12.2002 - -Bugfix: LINKEFFECT wird nun genau gleich wie bei ST-Guide behandelt. - D.h. der angegebene Effekt wird als "zustzlicher" Text-Effekt mit dem - gerade aktuellen Verknpft. - -Bugfix: Die Icon-Position beim Iconifizieren wird nun immer neu einge- - stellt. - Dadurch klappt's auch mit ICFS bzw. Iconify-Servern, die - wind_get(WF_ICONIFY) nicht untersttzen. - -04.12.2002 - -Da ich aus zeitlichen Grnden kaum zum Programmieren kommen, - verffentliche ich den aktuellen Stand. - -29.11.2002 - -automatisches Scrollen in vertikaler Richtung beim Selektieren. - -27.11.2002 - -Bugfix: Flschlicherweise wurden beim Klick auf "Zurck" Dateien - geschlossen, die evtl. noch bentigt wurden. - (Z.B. "Katalog.hyp" -> "TOS.hyp" -> "Katalog.hyp" -> zurck - -> zurck -> CRASH!!!) - -26.11.2002 - -Einfache Text-Selektion per Maus eingebaut. - Folgende "Features": - -Funktioniert mit binr, ASCII und HYP Dateien - -Kein automatisches Scrollen am Fensterrand - -Keine Bercksichtigung der Text-Attribute (Betrifft HYP) - -Kein "Fortsetzen" der Selektion mittels Shift-Taste. - -Noch KEINE Aktionen eingebaut (also nur selektieren mglich). - -24.11.2002 - -Bugfix: Speicherschutzverletzung bei AV_PROTOKOLL "beseitigt". D.h. - HypView geht davon aus, dass bei der Anwort mit VA_PROTOSTATUS der - Zeiger auf den eigenen Namen nicht mehr bentigt wird und daher - freigegeben werden kann. Ein Desktop, der danach trotzdem auf diesen - Zeiger zugreift wird immer noch "abschmieren". Selberschuld! - -20.11.2002 - -Bugfix: Zugriff auf ungltigen Zeiger beseitigt. (Speicherschutz) - -18.11.2002 - -kleinere Bugs beseitigt, die sich eingeschlichen haben. - -17.11.2002 (v0.20) - -Autolocator-Funktionalitt eingebaut. - Dies funktioniert mit allen Formaten (=3DHYP, ASCII, binr). - Funktionsweise: - -Such-Text eingeben - -RETURN startet die gleiche Suche erneut - -ESC lscht den eingegebenen Text - -Einfache Speicherfunktion fr HYP, welche die aktuelle Seite als ASCII - speichert. - -13.11.2002 - -Nach der internen Umstellung luft nun (anscheinend) alles so wie in de= r - vorherigen Version. - -Die Mult-Window-Bugs sind nun hoffentlich behoben. - -02.10.2002 - -Sortier-Reihenfolge der HISTORY gendert (=3Dneuste Eintrge zuoberst) - -Allgemeine berarbeitung begonnen. (Da sich die Abstrze beim Gebrauch - des "Multi-Window-Features" nicht so einfach beseitigen liessen. - =3D strukturelle Schwchen) - -Die Standard-Pfadliste wird nun beim Starten automatisch an das Start- - laufwerk angepasst. (z.B. wird aus C: M: falls von M: gebootet wird.) - Dies betrifft nur die Standard-Pfade! D.h. es wird diese nderung nur - vorgenommen, falls keine andere Pfadliste aus der CFG geladen wurde. - -Bugfix: beim seitenweise Scrollen per Maus wurde immer eine Zeile - bersprungen. - -Bugfix: die Fileselect-Box im Fenster ist wieder zurck :-) - -Bugfix: Falls mehrere Fenster offen waren, geriet die "History" - manchmal durcheinander, was sogar zum Absturz fhren konnte. - -Bugfix: Memory-Leck bei der Anzeige von ASCII-Dateien beseitigt. - -24.09.2002 (v0.17) - -Bugfix: Unntige/Fehlerhafte Mfree-Aufrufe beseitigt. - -Bugfix: Datei-Handle wurde nicht geschlossen, falls die Datei beim - "zurck"-Bewegen erneut geffnet werden musste. - -Bugfix: ein zu ffnendes Fenster hat nun immer mindestens 1 Zeile und - 5 Kolonnen. Dadurch kann ein Absturz unter MagiC verhindert werden, - da kein "zu kleines" Fenster erstellt wird. - -Bugfix: Speicherschutz-Problem unter MiNT beseitigt (zumindest falls e= s - keine anderen mehr hat). - -Bugfix: Als ACC wurde nicht auf die AP_TERM Meldung reagiert. - -23.09.2002 (v0.16) - -Automatisches Anpassen der Fenster berarbeitet. Es sollte nun nicht me= hr - passieren, dass Fensterteile teilweise ausserhalb des sichtbaren Berei= chs - zu liegen kommen. - -Bugfix: Falls eine gerade offene Datei nochmals geffnet wurde, wurde - in der "History" die falsche Seitennummer gespeichert. - -HypView berprft nun auf Wunsch (in der Konfiguration CHECK_TIME=3D1) - vor dem erneuten Zugriff auf Dateien, ob sich diese gendert haben und - ladet sie erneut. (Praktisch beim Schreiben von Hypertexten und beim - Erstellen des KATALOG.HYP) - -18.09.2002 - -HypView luft nun auch falls die Zeilen von HYP_VIEW.CFG mit LF (=3DUni= x) - oder auch nur mit CR (=3DMac) abgeschlossen sind. - -Bugfix: Zeichenstze unterschiedlicher Grsse wurden nicht korrekt - verarbeitet. Dies fhrte zu "berreste" beim Scrollen. - -16.09.2002 - -Neues Schlsselwort in der Konfiguration: DEBUG_FILE - Alle Fehlermeldungen, die normalerweise auf STDERR (=3Dbei MagiC ist d= as - der Bildschirm) knnen auf eine beliebige Datei umgeleitet werden. - Dadurch lsst sich meine MiNT-Installation auch berreden die Fehler - anzuzeigen. - -Bugfix: Beim Starten als ACC wollte HypView die Parameter auswerten, - obwohl keine existieren bzw. die Daten ungltig sind. - -Bugfix: Es konnte vorkommen, das der Hilfe- und der Index-Button - anwhlbaren, obwohl es diese Seiten nicht gab. - -Abfrage auf WDIALOG vorlufig ausgebaut. (Hallo MiNTler :-)) - -Bugfix: Falls die HOME-Variable nicht mit einem '\' oder '/' ab- - geschlossen war, wurde auf einen ungltigen Pfad zugegriffen und die CF= G - nicht gefunden. - -15.09.2002 (v0.15) - -Popups, die im Hypertext per @previous und @next in den HYP integriert - sind werden nun auch geladen und dargestellt. (Vorher blockierten dies= e - die Navigation mittels "Vorwrts" und "Rckwrts".) - -Untersttzung von WINPOS: Bugs beseitigt und verbessert (=3Des ist nun - nicht mehr mglich das Fenster so zu positionieren, dass die Fenster- - elemente nicht mehr bedienbar sind). - -"CTRL+Klick geht nicht immer"-Bug beseitigt: 0 Byte am Stringende - vergessen :-) - -Falls in einem Hypertext keine Hilfe-Seite mittels @help definiert ist= , - wird nach dem Kapitel "Help" gesucht. - -Bugfix: Die Seite, die mittels @default in einem HYP definiert wird, - wurde flschlicherweise immer als Startseite benutzt. - -Bugfix: Ein Klick auf ein @limage fhrte zum Absturz. - -13.09.2002 - -Falls eine VA_START Meldung ankommt, die keine Datei als Parameter - enthlt, so wird dies als "Aufwecken" von HypView interpretiert. - Falls mit DEFAULT=3Dxy eine Datei definiert wurde, so wird diese geffn= et, - sonst wird der File-Selector geffnet. - -Bugfix: Als ACC gestartet konnte es vorkommen, dass HypView auf ein - nicht mehr existierendes Fenster zugriff, was natrlich zum Absturz - fhrte. - -04.09.2002 (v0.14) - -Untersttzung fr "echte" Page-Up und Page-Down Tasten (wird von - MagiCMac untersttzt). - -Falls kein Katalog mittels "KATALOG=3Dxy.hyp" definiert ist, dann lsst - sich das Katalog-Icon nicht mehr anwhlen. - -Bugfix: Bilder wurden beim zeilenweisen Scrollen "abgeschnitten". - -30.08.2002 (v0.13) - -Obwohl es noch einiges zu implementieren gbe, verffentliche ich diese - "Etape". - -22.08.2002 - -Links vom Typ SYSTEM_ARGUMENT, REXX_SCRIPT und REXX_COMMAND (=3D4-6) w= erden - nun folgendermassen behandelt: - -SYSTEM_ARGUMENT und REXX_SCRIPT fhren zu einer AV_STARTPROG Meldung - an den AV-Server. - -REXX_COMMAND fhrt zum Senden einer VA_START Meldung an den Host, der - mittels @hostname im Hypertext gesetzt wurde. - -Bei allen drei Typen wird vor dem Versenden der Meldung versucht ein= en - absoluten Pfad auf eine existierende Datei zu erstellen. D.h. als Pfad - wird der Zugriffspfad des Hypertexts genommen und das "Kommando" als - Dateinamen interpretiert. Wird eine solche Datei gefunden, so wird - die Meldung mit dem kompletten Zugriffspfad versendet. Ansonsten wird - nur das "Kommando" versendet. Z.B. findet QED dadurch die Dateien. - =3D> Beispiel in TEST.HYP/Kommunikation - -Interne-Representation der Hypertext-Seiten gendert. Dadurch wurde die - Anzeige und das Scrollen beschleunigt. Trotzdem scheint das Zeilenweis= e- - scrollen beim ST-Guide schneller zu gehen. - -21.08.2002 - -Weitere Anpassung des TEST.HYP - -NEU: Klick auf @alink Verweise ffnen nun ein neues Fenster. Es gibt ab= er - kaum Hypertexte die das bisher nutzen, da ST-Guide bekanntlich nur 1 - Fenster verwalten kann. Evtl. ndert sich das mit HypView? - -Links vom Typ 5 (REXX_SCRIPT) werden wie Typ 4 und 6 einfach an den - AV-Server weitergegeben. - -Links vom Typ 7 (QUIT) fhren zum Schliessen des aktuellen Fensters. - -Links vom Typ 4-6 werden zuerst als Pfade interpretiert und im aktuell= en - Verzeichnis gesucht. Falls diese Datei nicht existiert, wird statt des= sen - der unvernderte Link an den AV-Server bergeben. - Damit klappt es nun auch mit externen Verweisen auf nicht-Texte (z.B. = auf - eine Batch-Datei im aktuellen Verzeichnis =3D> siehe TEST.HYP). - -20.08.2002 - -Test-Hypertext berarbeitet und mit neuen Seiten fr nicht-existierende - Features ergnzt. Jetzt geht's an's implementieren. - -27.07.2002 - -Bugfix: Falls beim schliessen eines Hypertextes noch ein Popup-Fenster - offen war beendete sich das Programm nicht. - -14.07.2002 (v0.12) - -Funktionsnderung: CTRL+UP/DOWN (=3DStrg und Pfeilhoch/-runter) bewirke= n - nun wie SHIFT+UP/DOWN ein seitenweises Scrollen des Fensters. - Dadurch funktioniert die "Page-Up/Down" Taste von PC-Tastaturen auch - wie zu erwarten ist (und auch von anderen GEM-Programmen praktiziert - wird). Dadurch weicht die Bedienung von ArcView von der ST-Guide - blichen ab. - -Bugfix: Tastatur-Funktionen, die fr binr-/ASCII-Texte nicht verfgbar - sind, fhren nicht mehr zum Absturz. - -NEU: Falls CTRL whrend dem Klick auf einen Link gedrckt gehalten - wird, dann wird dieser in einem neuen Fenster dargestellt. - (Achtung: Die Datei wird erneut geladen! =3D> doppelter Speicherverbra= uch!) - -Falls der Zeichensatz gendert wurde (CTRL+Z), werden alle offenen - Dokumente aktualisiert und den entsprechenden Fenster eine Redraw- - Meldung geschickt. - -Links des Typs 6 (REXX_COMMAND) werden wie Typ 4 (SYSTEM_ARGUMENT) - behandelt. Dadurch wird das ffnen einer Datei mit einem speziellen - Viewer dem AV-Server berlassen (der also den passenden Viewer suchen - und starten muss). - -NEU: In der Konfigurationsdatei kann mittels VA_START_NEWWIN angegeben - werden, wie auf eine VA_START-Meldung reagiert wird (0=3Dkein neues Fe= nster - ffnen;1=3Devtl.;2=3Dimmer) - -Bugfix: Ein iconifiziertes Fenster wurde beim Laden einer neuen Datei - nicht automatisch "deiconifiziert". - -13.07.2002 - -Bugfix: Das Index-Icon ist nur noch anwhlbar falls auch wirklich eine - Index-Seite im Hypertext enthalten ist. - -Bugfix: Fehler in der Cache-Verwaltung beseitigt. Es wurde auf ein Hyp= er- - text zugegriffen, der nicht mehr komplett im Speicher war. - -29.06.2002 (v0.11) - -Bugfix: ACC Betrieb endete meist mit einem Bus-Fehler. - -Bugfix: Hyp-Header wurden unntigerweise mehrmals geladen, weil nicht - bemerkt wurde das die Datei schon geffnet ist. (=3D>Cache) - -26.06.2002 - -Bugfix: Falls keine Default-Datei angegeben wurde, gab es einen Crash. - -Neu: System-Argumente werden per AV_STARTPROG an den AV-Server bergebe= n. - (D.h. man kann nun z.B. den KATALOG.HYP erneuern) - -Neu: Falls eine Datei aus einer anderen geladen wird (z.B. Verweis auf - HISTORY.TXT), dann wird versucht die Datei im Pfad der geffneten Datei - zu ffnen. (Man sollte nicht "." in die Pfadliste aufnehmen, da sonst - HypView Dateien in seinem (!) Verzeichnis sucht.) - -Bugfix: Der Link-Effekt wurde erst ab 16 Farben bernommen. - -25.06.2002 (v0.10) - -Bugfix: Speicherleck beim wechseln zwischen Dateien gestopft. - -Cache-Funktion wieder implementiert. - -Bugfix: "Speicher-Schiesser" beseitigt. - -Bugfix: Wechsel zwischen HYP-Dateien und anderen Formaten klappt - wieder (=3D> Cache-Leerungs-Bug beseitigt) - -Popups funktionieren wieder. - -Zeichensatz-Wechsel (FONT <-> XFONT) mittels CTRL+Z klappt wieder. - -Bugfix: TOS.HYP luft nun wieder. - -Bugfix: Bestimmen der Klickposition funktioniert nun auch mit Hyper- - texten, die Bilder enthalten und mit HCP < 3 erstellt wurden. - (=3D"Chrysalis-Bug") - -24.06.2002 - -Navigation mittels Links wieder implementiert - -20.06.2002 bis 22.06.2002 - -HYP-Format wird nun wieder geladen und angezeigt. (Nachwievor nach - der alten Methode) - -Navigation mittels Iconleiste und Tastatur wieder eingebaut. - -19.06.2002 - -Bugfix: Ein CTRL+ALT+HOME fhrt nicht mehr zum iconifizieren des - Fensters. - -Die Konfiguration wird nun wieder aus der Datei geladen. - Dabei habe ich einige Konfigurations-Punkte umgetauft und ein paar neu= e - eingefhrt (TEXT_COLOR, BIN_COLUMNS, ASCII_TAB, LINK_EFFECT). - -16.06.2002 - -Neu: Untersttzung fr ASCII Texte mit Atari-/PC-,Mac- und Unix-Zeilen- - enden. (Es knnen nur Dateien geladen werden, die vollkommen in den - Arbeitsspeicher passen.) - Ein Text wird als ASCII Text erkannt falls er keine Zeichen unter dem - Wert 32 enthlt (mit Ausnahme von CR, LF und TAB). - -Binrdateien haben eine fixe Zeilenlnge (zur Zeit 76, wird aber spter - konfigurierbar). - -Beschleunigtes Scrolling, durch das ich mittels zustzlichem Speicher - eine Tabelle mit allen Zeilen-Anfnge erstelle. - -15.06.2002 - -Komplette berarbeitung begonnen. - Das Konzept wird nun modularisiert, d.h. es werden in Zukunft mehr als - nur HYP Dateien untersttzt. (Binr, ASCII, HYP fr den Anfang) - -Laden und Darstellen von Binrendaten klappt. (0-Zeichen werden als - Leerzeichen ausgegeben) - -Untersttzung fr mehrere Fenster. - -11.06.2002 - -Bugfix: Beim Berechnen der maximalen Seitenhhe wurde die Hhe von - "@image" nicht korrekt bercksichtigt. - -Bugfix: @limage Tags werden nur noch interpretiert, falls der - Hypertext mit dem HCP Version 3 (=3Daktuellste) compiliert wurden. - Dadurch wird die Darstellung von "alten" Hypertexten verbessert. - -09.06.2002 (v0.07) - -HypView bildet nun nicht mehr die Fensterbreite als Minimum von - @width und der ermittelten Kolonnenanzahl. (Anscheinend ist das - wieder einmal ein Fehler in der ST-Guide Dokumentation.) - -Bugfix: Falls WINADJUST=3D0 war und keine Fensterposition mittels - WINPOS definiert wurde, wurde das Fenster in maximaler grsse - geffnet, was beim Scrollen meistens zu abgeschnittenen Texten - fhrte. (Hallo Thomas! Ich habs gefunden :-)) - -Bugfix: Manchmal wurden falsche Text-Attribute beim Neuzeichnen - benutzt. - -Bugfix: Bei der Suche nach der Seite wird nun Gross-/Kleinschreibung - ignoriert. - -Bugfix: Bei von Aussen bewirkten Seitenwechsel (z.B. Hilfe-Aufruf aus - einem anderen Programm) wurde immer der Cache-Speicher gelscht und - ein History-Eintrag vermerkt, auch wenn der Sprung innerhalb der - gleichen Datei war und die Zielseite schon dargestellt wurde. - -05.06.2002 (v0.06) - -Falls eine Datei nicht gefunden wird, wird der Name in der Fehler- - meldung erwhnt. - -Gunnar hat die 16 Farben-Version berarbeitet. - -04.06.2002 - -Problem entdeckt: Bei den Konfigurationsvariablen wie z.B. PATH, - KATALOG, DEFAULT darf kein Kommentar in der gleichen Zeile stehen, - da sonst die Daten falsch interpretiert werden. Also Vorsicht! - -02.06.2002 - -Gunnar Grbel hat sich die Mhe gemacht die HypView-Resource einwenig - an die modernen Zeiten anzupassen und hat ein paar schne Icons in - 256 Farben gestaltet. (Vielen Dank!) - -Ich habe die Icons rasch in 16 Farben konvertiert. - -Bugfix: Das Icon fr das History-Popup wurde aktiviert, obwohl diese - Funktion noch nicht verfgbar ist. - -25.05.2002 - -ACC Behandlung gendert: - CTRL+Q als ACC: Schliessen aller Fenster - als APP: Beenden des Programmes - AP_TERM : Beendet immer das Programm! - -23.05.2002 (V0.05) - -Tastatur-Wiederholung wird nun beim Auswerten deaktiviert. - Dank Richard klappt dies sogar auf einem sauberen Weg (wenn mglich). - -Die Hintergrundfarbe wird nur noch bercksichtigt, falls mindestens - 16 Farben zur verfgung stehen. (=3DFalls man einmal im S/W Modus start= et, - kann man doch noch Hypertexte ansehen.) - -Es ist nun mglich HypView auch zu beenden falls es als ACC gestartet - wurde. --> Vorsicht unter SingleTOS!! - -Es wird nun immer die selbst ermittelte Zeilenbreite verwendet auch fa= lls - das Header-Tag @width existiert. Der ST-Guide macht das auch so. - (=3D> Hypertext Dokumentation ist da fehlerhaft!) - -Bugfix bei der True-Color Anpassung von grossen Bildern beseitigt. - -Bilder werden nun wie beim ST-Guide "transparent" ausgegeben. - Falls die Darstellung mit 16 bis 256 Farben erfolgt verursacht dies - mehr Aufwand als ohne Transparenz! - Das Feature kann mit "TRANSPARENT_PICS=3D0" deaktiviert werden. - -08.05.2002 - -Minimale Verbesserung bei der True-Color Konvertierung (=3Dnur noch 15 - Mono-Bitmaps mit vrt_cpyfm()) - -04.05.2002 - -True Color Untersttzung vollstndig umgeschrieben. Nun werden alle - einzelnen Farben extrahiert und als Monochrombitmap mit vrt_cpyfm() - in das True Color Bild geschrieben. - Dies ist zwar langsam, funktioniert jedoch auf allen Grafikkarten?! - -Bugfix bei der Parameterbergabe (Dateiname - Kapitelname). - Ausserdem wird nun auf ".HYP " (nicht nur "HYP ") getestet um den - Kapitelnamen zu finden. - -01.05.2002 (V0.03) - -CTRL+I zeigt die Versionsnummer von HypView an. - -HYP-View luft nun endlich als ACC! (Das Programm verhlt sich prinzip- - iell genau gleich. D.h. ich treffe keine Sicherheitsmassnahmen um die - Lauffhigkeit unter TOS sicherzustellen!) - -30.04.2002 - -Wie ich vernehmen konnte, klappt's nun mit der NOVA-Kompatibilitt, - aber mit der Milan- und der Eclips-Grafikkarte luft's noch nicht :-( - -Falls kein Default-Hypertext angegeben wurde (DEFAULT=3Dxy), dann wird - die Fileselect-Box aufgerufen. - Mittels CTRL+O kann sie jederzeit erneut aufgerufen werden. - Auch das Icon zum Laden der Datei ist jetzt aktiv. - -Bugfix: Falls eine Datei schon geffnet/geladen wurde, konnte es - vorkommen, dass bei einem erneuten Verweis auf diesen Hypertext - nicht bemerkt wurde, dass er schon im Speicher ist. (=3D> doppelt - geladen) - -Kommandozeile, VA_START- und Drag&Drop-Parameter: - -Falls die ersten 3 Zeichen "*:\" sind, so werden diese bersprungen. - (Nach ST-Guide-Konvention wird dieses Format verwendet, falls das - Programm den absoluten Pfad einer Datei nicht weiss.) - -Am rechten "Parameter-Rand" wird nach einem Kapitelnamen gesucht - -Der Rest wird als Pfad angesehen. Konnte die Datei nicht geffnet - werden, so wird versucht mit Hilfe der PATH Variable die Datei - zu finden. - Benennt man nun HYP_VIEW.APP in ST-GUIDE.APP um und lsst es laufen - (da es noch nicht als ACC luft), so schicken alle ST-Guide-kompatiblen - Programme ihre Hilfe-Anfragen an HYP-View! - -Aus historischen Grnden werden die Kapitelnamen mit einem ' ' - (=3DLeerzeichen) vom Pfad/Dateinamen getrennt. Der original ST-Guide - interpretierte also ab dem ersten Leerzeichen alles als Kapitelnamen. - Dies fhrte dazu, dass der ST-Guide nicht mit Leerzeichen im Pfad - zurechtkam. - Um nun kompatibel zu bleiben und trotzdem Leerzeichen im Pfad/Dateinam= en - zu erlauben sucht HYP-View nicht einfach nach einem Leerzeichen, sonde= rn - nach der Datei Extension "HYP" gefolgt von einem Leerzeichen. Wird als= o - die Zeichenfolge "HYP " (Gross-/Klein-Buchstaben ist egal) im Pfad - gefunden, so wird der Rest als Kapitelnamen interpretiert. - =3D=3D> Also Achtung: Keinen Pfad erstellen, der auf dieses Muster pas= st, - da die darin enthaltenen Hypertexte nicht gefunden werden knnen! - -28.04.2002 - -nderungen am True-Color Workaround. - -Externe Konfiguration ber die HYP_VIEW.CFG erweitert: - -WINPOS erlaubt nun Breite und Hhe (in Zeichen!) - -WINADJUST aktiviert/deaktiviert die autom. Fenstergrssen-Anpassung - -BACKCOL erlaubt das Einstellen der Hintergrundfarbe. - (im Gegensatz zum ST-Guide werden die Bilder nicht transparent - gezeichnet.) - -Ein paar Kommentare zu den verschiedenen Variablen eingefgt. - -Bugfix: Absturz falls kein GDOS installiert war. - -Datei-Existenz wird nun mittels Fopen/Fclose berprft anstatt mit - Fxattr. Damit luft HYP-View auch unter Single-TOS (zumindest unter - TOS 4.04 habe ich kein Problem bemerkt). - -27.04.2002 - -Anscheinend klappt's mit dem True-Color Workaround nicht. - -Bugfix: Da die @limage-Definition anscheinend nicht ganz rckwrts- - kompatibel ist (was sich beim NOVA-Hypertext herausstellte), werden - nun Bilder mit der Breite =3D 1 Zeichen als @limage Bilder interpretie= rt. - Dadurch sollte es keine Probleme mit Hypertexten vor dem 19.04.1995 - mehr geben. - -Tests haben gezeigt, dass HYP-View die Bilder von Hypertexten, die - mit dem HCP vor dem 19.04.1995 erstellt wurden, nicht 100% an der - gleichen stelle wie beim ST-Guide anzeigt. (=3DHYP-View: 1 Pixel weite= r - unten) - -26.04.2002 - -Nachdem ich auf meine "Alpha-Preview" einige Reaktionen erhalten habe, - stellte sich auch heraus, dass es Probleme mit verschiedenen Grafik- - karten gibt unteranderem: NOVA und die im Milan eingebaute. - Der Fehler liegt wahrscheinlich daran, dass diese die Little-Endian - Darstellung benutzen (=3Dalso die auf dem PC gebruchliche). Daher habe - ich einen weiteren Workaround eingebaut. - -Neues Schlsselwort in der Konfigurationsdatei: LITTLEENDIAN=3D1 - aktiviert die Little-Endian Darstellung bei Grafikkarten. (Ich weiss, - dass das keine gute Lsung ist. Aber evtl. luft's so auf die schnelle!) - -21.04.2002 - -Eine "busy bee" zeigt nun, dass gerade eine Seite geladen wird. - Dies ist vorallem wichtig beim langen Laden des TOS.HYP Indexes :-) - -Wie ich bei Tests mit dem HCP erfahren musste, werden nur Bilder - mit 1 oder 4 Ebenen (=3Dmonochrom und 16 Farben) untersttzt, dadurch - verringert sich der Aufwand fr mich: Ich muss nur eine Routine - schreiben, die 4 Planes in 1 Plane konvertiert. - -Falls zuwenig Farben zur Darstellung der Bilder im Original vorhanden - sind, wird das gleiche Verfahren wie beim ST-Guide angewendet: - Alle Farben bis auf Weiss und Hellgrau werden Schwarz gefrbt. - -Falls bis zu 8 Ebenen (=3D256 Farben) vorhanden sind, werden die Bilde= r - "expandiert". - -Rudimentre (=3Dusserst schlechte) Routine, die Bilder ins Gerte - abhngige True-Color Format konvertiert. (Bisher lediglich auf meinem - Falcon in High-Color (16Bit) getestet.) - -20.04.2002 - -Mit der Tastenkombination CTRL+Z kann zwischen den 2 Zeichenstzen - (FONT und XFONT) gewechselt werden. - -Bugfix: Beim Bestimmen der Fensterbreite wurden flschlicherweise - Linienbefehle als Text und als Linien interpretiert, was je nach - Anzahl Linien zu einer unntig grossen Fensterbreite fhrte. - -Die Einstellungen werden nun aus der Datei HYP_VIEW.CFG geladen. - Damit lassen sich endlich die Einstellungen "von Aussen" verndern. - -18.04.2002 - -Untersttzung von Popup-Texten. - Verbesserungen gegenber dem ST-Guide: - - Popup in einem eigenen Fenster (=3Dohne Randelemente), jedoch - Applikations-modal. - Dadurch bleibt die Menuzeile aktiv und die Ausgabe anderer - Programme wird nicht blockiert. - - Popups knnen auch Grafik-Objekte und Bilder enthalten. - (Dummerweise entfernt der HCP die Objekte aus den "pnode"s, - da der ST-Guide dies nicht verkraftet. Abhilfe: man muss ein - normaler Eintrag (=3D"node") erstellen und nach dem compilieren - mit HCP den Header von Hand anpassen!) - - Die Grsse ist nicht beschrnkt. Es werden aber keine Slider - angezeigt, falls das Popup grsser als der ganze Bildschirm - ist. =3D> Zu grosse Popups werden nicht ganz angezeigt. - (aber trotzdem besser als die 12 Zeilen mit 60 Zeichen, die - der original ST-Guide bietet) - -13.04.2002 - -Nun kann man zur Anzeige auch proportionale Zeichenstze verwenden. - Die Darstellung ist dabei (wie schon bei den quidistanten Zeichen- - stzen) 100% ST-Guide kompatibel. - -Probleme bereiten die kursiven Texte, da zur Berechnung der "Klick- - Position" die Breite jedes Zeichens genommen wird. Und nicht etwa - die Breite der einzelnen Worte. Dadurch, kann die genaue Position - der angeklickten Stelle nicht bestimmt werden! - Dieses Problem hat aber der "echte" ST-Guide auch schon! - -Falls sich an der angeklickten Position nichts befindet, wird das - darunterliegende Wort ermittelt und an eine Pseudo-Suchmaschine - bergeben. - -11.04.2002 - -Nach tagelanger Suche, habe ich endlich herausgefunden, warum die Tite= l- - Grafik des "Chips'n'Chips" Hypertextes falsch dargestellt wurde: - Grafiken drfen auch grsser als die 65 KB sein. Die wahre grsse muss - aber mit Hilfe des "Next" Wertes berechnet werden. - D.h. "Next" enthlt das High-Word der Lnge der entpackten Daten. - Etwas kompliziert formuliert. Wer also genau wissen will wie das geht, - kann bei mir nachfragen. - -07.04.2002 - -Bugfix: Das Anpassen der Fensterbreite und Hhe bercksichtigte - nicht die aktuelle X/Y Position. - -12.03.2002 - -GetLink() korrigiert. (Nach wie vor keine Untersttzung fr - proportionale Zeichenstze) - -Beim Anzeigen einer neuen Seite springt das Fenster nicht stndig - in die obere linke Ecke. D.h. es wird nur noch Breite und Hhe - angepasst. - -Die wichtigsten Tastenkrzel zum Navigieren im Hypertext implementiert. - -Nachdem ich umgezogen bin, hatte ich endlich wieder Zeit um an meinem -Programm zu basteln: - - -11.03.2002 - -Die 1. Plane aller Bilder wird nun korrekt dargestellt. Das bedeutet, - dass man mit HypView monochrome Hypertexte ansehen kann. - Bei Farbbildern kann man teilweise nur erahnen, was dargestellt wird. - -Der Index- und der Katalog-Button haben nun ihre Funktion erhalten. - (Index springt zur Seite mit dem Namen "Index" und Katalog ffnet die - Datei "KATALOG.HYP") - -05.03.2002 - -Externe-Referenzen funktionieren nun auch. - -History-Eintrge knnen nun auf andere Dateien zeigen. - -Falls die Datei nicht im aktuellen Verzeichnis gefunden wird, so wird - noch in den angegebenen Suchpfaden gesucht. - -03.03.2002 - -Nun kann man auch mit Mausklicks auf Links durch den Hypertext "browse= n" - wobei das anzeigen von externen Referenzen und Popups noch nicht klapp= t - und einfach mit einer Meldung quittiert wird. - Das ganze muss noch etwas umstrukturiert werden! - -Probleme bei der History, falls sich der Pfad gendert hat. - -02.03.2002 - -Die Reihenfolge der Seiten (=3Dinterne Vernetzung) wird nun beim Bltte= rn - bercksichtigt. Falls es in eine Richtung nicht mehr weitergeht, so - wird der entsprechende Richtungspfeil versteckt. - -Ich habe provisorisch die Icons vom ST-Guide bernommen. Schliesslich - soll spter einmal jede seiner Funktionen bernommen werden. - -28.02.2002 - -Die Anzeige klappt nun. Probleme bereiteten mir die "@limage" Bilder. - Die Anzeige basiert nun auf folgenden Annahmen: - Alle Grafikobjekte ("image","limage","box","line","rbox") befinden - sich am Anfang der entpackten Daten. - Danach befindet sich der eigentliche Text (inkl. Textattribute und - -Bisher funktioniert erst das vorwrts und rckwrts Blttern ohne die - Reihenfolge zu beachten, also Node 0,1,2,... - -27.02.2002 - -Bugfix: Bei der Verwendung von Textattributen wurde nicht beachtet, da= ss - je nach Effekt der Text breiter wurde (z.B. Italic). - -16.02.2002 bis 23.02.2002 - -berarbeitung der Anzeigeroutinen - -Es wird bei jedem Redraw der ganze Hypertext neu gezeichnet - =3D=3D> nicht besonders schnell! - -Probleme mit "limage" bestehen noch. - -Bei Bildern wird bisher nur die 1. Plane dargestellt (=3Dkein Dithern= , - keine farbigen Bilder) - -15.02.2002 - -Arbeiten am "GEM-Gewand": Texte werden nun in einem Fenster dargestell= t. - Noch keine Grafiken implementiert. - -30.01.2002 - -Kleine Umstrukturierung, damit die Routinen wie eine Bibliothek - zu einem anderen Programm dazugelinkt werden knnen. - -=3D=3D> jetzt muss das ganze in eine GEM-Applikation "gestrickt" werden. - - -29.11.2001 - -Die HYP-Laderoutine neu geschrieben: - -HYP_DOCUMENT enthlt nun die Indextabelle sowie Zusatzinfos - (Autor, Version, ...) und natrlich der Zugriffspfad auf die Datei. - -Besteht nun aus einem einzigen Speicherblock (=3Dnicht mehrere - "Mfree()" ntig um das Dokument zu entfernen) - -DisplayXY() Routinen angepasst. - -25.11.2001 - -interne Reorganisation - -22.11.2001 - -Verarbeitet nun die meisten getesteten Seiten. D.h. bisher werden alle - grafischen Attribute bersprungen. - -Kann auch verschlsselte Dateien lesen (wie z.B. Chips&Chips) - -20.11.2001 - -Einfache Textdarstellung einer Seite ohne Grafiken und Links klappt - nun einigermassen. - -19.11.2001 - -Nachdem ich seit geraumer Zeit mit dem Gedanken gespielt habe einen - eigenen HYPertext Viewer zu schreiben, habe ich endlich mit etwas - Code begonnen. (Ausserdem habe ich auch schon seit lngerer Zeit den - Quelltext zu WinGuide von dessen Autor Frank Rger erhalten.) - Es steht also nichts mehr im Weg um das Projekt zu realisieren. - -Die erste Version ist wie immer eine ".TOS" Version mit Textausgaben. - Zur Zeit wird lediglich der HYP-Header sowie die Index-Daten aus einer - HYP-Datei geladen und eine Indextabelle im Speicher erstellt. - Danach wird ein "Baum-Artiger" Index angezeigt. +History for HypView (v0.35.3e) +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +10.02.2006 (v0.35.3e) + -Modified for gemlib. [ozk] + -Ported to gcc. [ozk] + -Initial CVS revision. [ozk] + -Many changes to fix problems with different sized fonts [ozk] + +17.09.2005 (v0.35.2e) + -ALT-E Stack lschen (Men -> Stack lschen) [GS] + +20.08.2005 + -Iconifizieren des Infodialogs [GS] +=09 +14.08.2005 + -Scrollweite mit entspricht + + [GS] + -Ctrl-Cursor hoch/links - zur vorigen Seite blaettern [GS] + -Ctrl-Cursor runter/rechts - zur nchsten Seite blaettern [GS] + +14.08.2005 + -Ist das Dokument fuer das erste Fenster nicht mehr vorhanden, war + keine Benutzung von HypView mehr mglich. [GS] + +12.08.2005 (v0.35.2d) + -Ist WDIALOG nicht vorhanden, sind einige Icons der Toolbar nicht + bedienbar. [GS] + -Neue VDI.LIB, damit keine Probleme mehr mit PlainTOS und Texten + mit Umlauten. + +10.08.2005 (v0.35.2c) + -Der Inhalt des letzten Fensters wird beim Oeffnen des ersten Fenster + wieder dargestellt. + +09.08.2005 (v0.35.2b) + -Wird beim Markenpfad am Anfang '$HOME\' angeben, versucht HypView + die Marken vom Homeverzeichnis zuladen. + z.B.: MARKFILE=3D$HOME\MARKEN.DAT + +31.07.2005 + -Fehler bei der Ausgabe der Popups unter N.AES 1.2.0 behoben. [GS] + +27.07.2005 + -Bei den Marken erscheinen die Dateinamen von denen sie stammen. Dazu + muessen sie aber neu gesetzt werden [GS] + +09.04.2005 + -Im Info-Dialog wird das Erstellungsdatum von HypView angezeigt. [GS] + +03.03.2005 + -Mit dem Schluesselwort REFONLY kann bestimmt werden ob bei einem Klick + mit der linken Maustaste nur Verweise verfolgt werden oder auch + nicht-markierte Worte. [GS] + -Ist ein alternativer Skin geladen, konnte es beim Umschalten zum + "Autolocator" zu einem haesslichen weissen Fleck kommen. [GS] + +02.03.2005 + -Im Info-Dialog wird neben der Programmversion nun auch relevante + Informationen zur aktuell Datei angezeigt. [GS] + -Die MagiC Dateiauswahl bekommt jetzt ein sinnvolles Dateimuster. [GS] + +05.02.2005 (v0.35.2) + -Workaround: Bug in XaAES fuehrte dazu dass HypView bei einer=20 + VA_START-Meldung in eine Endlos-Schleife verfiel. + (In XaAES liefert wind_get(WF_OWNER) fuer den "open status" immer 0). + +30.01.2005 (v0.35.1) + -Marken implementiert: Damit ist es nun moeglich bis zu 10 "Favoriten" + zu speichern. Die Marken werden in der mit MARKFILE spezifizierten + Datei gespeichert. Es kann die gleiche Datei wie bei ST-GUIDE + verwendet werden, da das Format kompatibel ist. [GS] + -Mit dem MARKFILE_SAVE_ASK kann die laestige Frage, ob die Marken-Datei + gespeichert werden soll, deaktiviert werden. [GS] + -Bugfix: Zeichenfehler bei den Popup-Mens unter XaAES. + -Falls der Autolocator aktiv ist kann mittels CTRL+V Text aus dem + Klemmbrett eingefuegt werden. + -Pure C-Hilfe Protokoll (AC_HELP Meldung) wird unterstuetzt um nach + Schluesselwoertern zu suchen. + -Suche in der REF Datenbank (mittels REFLINK.TTP generiert) + implementiert [PD+GS]. + Zur Zeit laesst sich nur mittels der Meldung "AC_HELP" eine Suche=20 + ausloesen (also z.B. HypView in QED als Hilfe-Server anmelden und=20 + dann HELP druecken wenn sich der Cursor auf einem Wort befindet. + +28.01.2005 + -Bugfix: Falls ein Programm per VA_START eine Hilfeseite welche ein + Leerzeichen im Titel aufrufen wollte, wurde die Seite nicht gefunden + oder es kam gar zum Absturz. [GS] + +30.12.2004 + -Mit CLIPBRD_NEW_WINDOW kann festgelegt werden ob beim Einfuegen mit + CTRL+V ein neues Fenster geoeffnet wird oder nicht. Bei zusaetzlichem + Druecken von "SHIFT" wird das Gegenteil der gewaehlten Funktion + ausgefuehrt. + -"Skin Laden" funktioniert wieder. Falls kein absoluter Pfad mittels + SKIN angegeben wurde, wird im Verzeichnis "Skins" danach gesucht. + D.h. relative Pfade beziehen sich immer auf das Verzeichnis "Skins" + im Verzeichnis, aus dem HypView gestartet wurde. + -AV_WINDOW_CYCLE aktiviert den globalen Fensterwechsel (via AVSERVER), + d.h. das "CTRL+W" nicht von HypView sondern vom AVSERVER erledigt + wird. Durch zusaetzliches Druecken von "SHIFT" wird das Gegenteil der + Funktion ausgefuehrt. + +19.10.2004 + -File Errors werden in einer Alertbox ausgeben und nicht mehr ber=20 + die Console. [GS] + +16.10.2004 (v0.34.1) + -Neues Versionsnummern Schema: die 3te Zahl steht fuer die Release + +14.10.2004 (v0.34) + -"Zurueck" im Kontext-Men. [GS] + +06.10.2004 + -Wurde per VA_START ein absoluter Pfad angeben und die Datei befindet + sich nicht dort. So erfolgte die Auswertung der Pfadliste nicht=20 + korrekt. [GS] + +30.09.2004 + -Menueicon aktiviert. [GS] + +18.09.2004 + -Bugfix: CTRL+V laedt jetzt wirklich die Datei SCRAP.TXT aus dem=20 + Clipboard. [GS] + -ALT-T Inhalts-Seite zeigen (wie Inhalt-Icon, wie ST-Guide) [GS] + -ALT-X Indexseite zeigen (wie Index-Icon, wie ST-Guide) [GS] + -ALT-K Katalog laden (wie Index-Icon, wie ST-Guide) [GS] + -Bugfix: Erkennung der REF Datei funktionierte nicht immer. [GS] +=09 +10.09.2004 + -Gerhard Stoll interessiert sich fuer den Quellcode von HypView und + will das Programm erweitern. Seine Aenderungen sind mit [GS] markiert. + -Unterstuetzung der Ende Tasten (gibt es z.B. beim Milan). [GS] + +29.01.2004 (v0.33) + -Bugfix: ASCII Texte, die nur eine Zeile ohne CR/LF enthielten, wurden + nicht angezeigt. + +14.01.2004 + -Bugfix: HypView ignorierte die Kapitel-Angabe "Main" fr externe + Referenzen. Dies fuehrte dazu, dass bei Referenzen auf andere Hypertex= ten=20 + nicht die richtige Startseite angezeigt wurde (sichtbar bei KATALOG.HY= P). + +23.12.2003 + -Bugfix: Falls HYP_VIEW.CFG nicht gefunden wurde, wurde faelschlicherwe= ise + versucht ein nicht existierender "Skin" zu laden. + -Bugfix: Die Bestimmung des Bootlaufwerks funktionierte bisher nicht. + +24.11.2003 + -Der Test auf WDIALOG wurde (hoffentlich endgueltig) beseitigt. + -Compiler-Einstellung war beim letzten Release faelschlicherweise auf + 68020 eingestellt. Dadurch lief das Programm unter MagiC PC und auf + "einfachen" STs nicht mehr. + -Laut TOS.HYP fuehrt ein @ am Anfang eines te_ptext (=3Deines Textfelds= )=20 + dazu, dass der Rest als Platzhalter interpretiert wird. + Folge: Falls bei der Suche mit dem "Autolocator" als erstes Zeichen=20 + ein @ eingegeben wird, werden alle Eingaben nicht angezeigt (die Suche + wird jedoch ausgefuehrt!). (MagiC ist jedoch davon nicht betroffen!) + +23.11.2003 + -Der "intelligente Fuller" verschiebt das Fenster (=3Ddie obere linke E= cke + des Fensters) nur noch wenn das vergrsserte Fenster ausserhalb des + sichtbaren Bereichs zu liegen kommt. D.h. beim "Fullen" des Fensters + springt das Fenster nicht mehr automatisch in die obere linke Ecke + des sichtbaren Bereichs. + +17.11.2003 (v0.32) + -Bugfix: Im ACC-Betrieb kam es nach 2maligem ffnen zum Absturz, falls=20 + kein DEFAULT Hypertext angegeben wurde. + +14.11.2003 (v0.31) + -Monochrome Bilder (=3D1 Bitplane) werden jetzt nicht mehr an die Anzah= l + Bitplanes der aktuellen Aufloesung angepasst, sondern einfach monochro= m + gelassen. Sie werden dann mittels vrt_cpyfm() wie beim Original ST-Gui= de + transparent auf den Bildschirm kopiert. (Diese Transparenz kann nicht + mehr mit TRANSPARENT_PICS=3D0 deaktiviert werden!) + -Bugfix: Beim Bilder Laden wurde unter Umstnden zuwenig Speicher + alloziert, was unter MagiC zum System-Absturz fhrte. + -Bugfix: Falls der intelligente "Fuller" deaktiviert wurde, jedoch + die automatische Fenstergrssen-Anpassung aktiviert war, wurde beim + Zeichensatzwechsel das Fenster auf max. Bildschirmgrsse vergrssert. + -Beim Zeichensatzwechsel (=3DCTRL+Z) wird nun sichergestellt, dass die + Seite gut sichtbar ist, d.h. es wird wenn ntig nach Oben gescrollt. + +10.11.2003 (v0.30) + -Intelligenteres vergrssern/verkleinern beim Zeichensatz-Wechsel + -Das "intelligente" vergrssern des Fensters auf die maximale Dokument- + grsse lsst sich nun mit dem Tag INTELLIGENT_FULLER=3D0 deaktivieren. + Dadurch wird die maximale Fenstergrsse auf Bildschirmgrsse gesetzt. + +09.11.2003 + -Falls WINADJUST=3D0 ist, wird trotzdem beim Zeichensatz-Wechsel die + Fensterbreite/-hhe angepasst (=3D"eingerastet"). + -Zeichen, die eine Zusatz-Taste (wie CTRL, ALT) zur Eingabe bentigen, + lassen sich nun auch in den Autolocator eingeben. + +04.11.2003 + -Bugfix: AV-Protokoll wird nun auch beim Start als ACC initialisiert. + -2 maliges Drcken von ESC deaktiviert und versteckt das Eingabe-Feld + des "Autolocator". Dadurch muss nicht mehr mit einem Mausklick das + Eingabe-Feld "weg-geklickt" werden. + +20.09.2003 (v0.29) + -Der Umbruch von Text-Dateien ist nun mittels "ASCII_BREAK=3D" in der + HYP_VIEW.CFG konfigurierbar. D.h. HypView bricht eine sehr lange + Zeile um, sobald die angegebene Anzahl von Zeichen erreicht wurde. + -Der Umbruch von Text-Zeilen ist erfolgt wenn mglich bei einem + Leerzeichen oder Tab-Zeichen. (Hallo Sascha :-)) + +02.09.2003 + -Bug "Endloses scrollen bei der Selektion" beseitigt + +29.08.2003 + -Debugging-Ausgabe bei der Selektion entfernt :-) + +07.08.2003 + -Fehler bei der Selektion entfernt + +04.08.2003 (v0.28) + -Untersttzung fr alternative Toolbars bzw. Skins eingebaut (Variable + SKIN zeigt auf die gewnschte RSC Datei im "Skins" Verzeichnis) + Gunnar Grbel hat vor einiger Zeit einige erstellt. + +03.08.2003 + -Bugfix: Externe Referenzen mit Kapitelangabe funktionieren wieder. + -Bugfix: Ein (mittels Zurck-Button) entferntes Dokument konnte + beim erneuten ffnen zum Absturz fhren. + -History-Popup mit bis zu 12 Eintrgen eingebaut. + +01.08.2003 + -Untersttzung fr externe Referenzen eingebaut (@xref Tag) + (=3DReferenzen-Popup mit bis zu 12 Eintrgen) + +31.07.2003 (v0.27) + -Unbekannte Dateien, die kein Null-Byte enthalten werden als Text + dargestellt. + -Text-Dateien, mit Zeilen lnger als 127 Zeichen werden umgebrochen. + -Falls eine geladene Datei mittels eines Links geladen wurde, so werden + folgende Dateien auch noch im realen Verzeichnis gesucht. + Beispiel: + "C:\GUIDES\ARCVIEW.HYP" ist ein Link auf "D:\ARCVIEW\ARCVIEW.HYP" + Wird nun auf den Link "HISTORY.TXT" geklickt, so werden folgende + Pfade der Reihe nach berprft: + C:\GUIDES\HISTORY.TXT + D:\ARCVIEW\HISTORY.TXT + HISTORY.TXT + $PATH + HISTORY.TXT + +30.07.2003 + -Bugfix: Darstellungs-Fehler bei sehr langen Seiten/Texten beseitigt. + -Verbesserte System-Integration: Offene Fenster werden in das + "Window-Cycling" des Desktops integriert (mittels AV_ACCWINDOPEN, + AV_ACCWINDCLOSED). + +11.07.2003 + -ASCII-Text-Erkennung: Es werden nun Dateien, die die Zeichen + 1-4 und 16-25 enthalten als ASCII angezeigt. (Obwohl es sich + korrekterweise nicht um ASCII handelt!) + +27.02.2003 + -Bugfix: Falls zu einer REF Datei kein passender HYPertext vorlag, + kam es zum Absturz. + +26.02.2003 (v0.26) + -Untersttzung fr REF Dateien eingebaut. + Wird eine .REF Datei als Pfad bergeben, so wird sie geladen und + die entsprechende .HYP Datei angezeigt. Achtung: Es wird einfach + nur die Dateierweiterung abgendert und nicht der entsprechende + Eintrag in der REF Datei ausgewertet! + -Falls eine Kapitelname im HYPertext nicht existiert, so wird + versucht die entsprechende .REF Datei zu laden. Im Erfolgsfall + wird dann darin nach dem passenden Kapitel gesucht. + +19.01.2003 (v0.25) + -Verffentlichung des aktuellen Standes. + +18.01.2003 + -Arbeiten am automatischen Scrollen whrend der Selektion + absgeschlossen. Folgende Features sind eingebaut: + -gleichzeitiges horizontales und vertikales Scrollen + -nach jedem Scroll-Schritt wird eine Pause von 50 ms gemacht. + Dadurch sollte das Scrollen auch auf schnellen Rechnern brauchbar + sein. + -vertikales Scrollen ist linear Abhngig von der Mausposition. + Das heisst, wenn die Maus weiter aus dem Fenster bewegt wird, wird + auch schneller gescrollt. (64 Pixel =3D 1 Zeile schneller) + -Bugfix: Falls die Katalog-Datei nicht geffnet werden kann, so + wird die Mausform wieder in einen Pfeil zurck gewandelt. + -Bugfix: Beim automatischen Anpassen der Fenstergrsse (WINADJUST=3D1) + wird nun immer die ganze Toolbar angezeigt (=3Dminimale Fensterbreite)= . + -Verbesserungen beim Umgang mit proportionalen Fonts. (Das Fensterraste= r + wird nun als Durchschnitt der Zeichenbreiten von ASCII 32 bis ASCII 15= 4 + berechnet.) + -Bugfix: Es wird nun immer der absolute Pfad einer Datei ermittelt. + (Also auch fr Dateien, die sich im aktuellen Verzeichnis befinden.) + -Das Block-Ende einer Selektion kann nun jederzeit mit SHIFT-Klick + verndert werden. + -Rechtsklick ffnet ein Popup mit den Block-Funktionen. + -Blockfunktionen: + -Speichern von HYP und ASCII Texten im ASCII Format (auch ber die + Toolbar zugnglich). + -CTRL+A whlt den ganzen geladenen Text aus + -CTRL+C kopierte den selektierten Block ins Clipboard. Falls kein + Text selektiert ist, wird der ganze Text kopiert. + -CTRL+V ladet die Datei SCRAP.TXT aus dem Clipboard. (wie ST-Guide) + +xx.01.2003 + -Diverse Arbeiten am automatischen Scrollen whrend der Selektion. + +31.12.2002 + -Bugfix beim automatischen Scrollen. Keine "Lcher" mehr vorhanden. + +18.12.2002 + -Verbesserungen bei der Selektion. + +17.12.2002 + -Autolocator: Leerzeichen am Anfang der Eingabe werden ignoriert. + -Selektion ist nun auch mit proportionalen Zeichenstzen kompatibel. + Bei Bitmap-Zeichenstzen berechnet anscheinend die Funktion + vqt_extent() die Grsse einer leeren Zeichenkette (=3D"") falsch, + falls kursiv als Attribut definiert ist. + +16.12.2002 + -Selektion wieder entfernt. Beginn einer neuen Implementation. + -NEU: Automatisches Scrolling in horizontaler Richtung beim Selektieren= . + +06.12.2002 + -Bugfix: LINKEFFECT wird nun genau gleich wie bei ST-Guide behandelt. + D.h. der angegebene Effekt wird als "zustzlicher" Text-Effekt mit dem + gerade aktuellen Verknpft. + -Bugfix: Die Icon-Position beim Iconifizieren wird nun immer neu einge- + stellt. + Dadurch klappt's auch mit ICFS bzw. Iconify-Servern, die + wind_get(WF_ICONIFY) nicht untersttzen. + +04.12.2002 + -Da ich aus zeitlichen Grnden kaum zum Programmieren kommen, + verffentliche ich den aktuellen Stand. + +29.11.2002 + -automatisches Scrollen in vertikaler Richtung beim Selektieren. + +27.11.2002 + -Bugfix: Flschlicherweise wurden beim Klick auf "Zurck" Dateien + geschlossen, die evtl. noch bentigt wurden. + (Z.B. "Katalog.hyp" -> "TOS.hyp" -> "Katalog.hyp" -> zurck + -> zurck -> CRASH!!!) + +26.11.2002 + -Einfache Text-Selektion per Maus eingebaut. + Folgende "Features": + -Funktioniert mit binr, ASCII und HYP Dateien + -Kein automatisches Scrollen am Fensterrand + -Keine Bercksichtigung der Text-Attribute (Betrifft HYP) + -Kein "Fortsetzen" der Selektion mittels Shift-Taste. + -Noch KEINE Aktionen eingebaut (also nur selektieren mglich). + +24.11.2002 + -Bugfix: Speicherschutzverletzung bei AV_PROTOKOLL "beseitigt". D.h. + HypView geht davon aus, dass bei der Anwort mit VA_PROTOSTATUS der + Zeiger auf den eigenen Namen nicht mehr bentigt wird und daher + freigegeben werden kann. Ein Desktop, der danach trotzdem auf diesen + Zeiger zugreift wird immer noch "abschmieren". Selberschuld! + +20.11.2002 + -Bugfix: Zugriff auf ungltigen Zeiger beseitigt. (Speicherschutz) + +18.11.2002 + -kleinere Bugs beseitigt, die sich eingeschlichen haben. + +17.11.2002 (v0.20) + -Autolocator-Funktionalitt eingebaut. + Dies funktioniert mit allen Formaten (=3DHYP, ASCII, binr). + Funktionsweise: + -Such-Text eingeben + -RETURN startet die gleiche Suche erneut + -ESC lscht den eingegebenen Text + -Einfache Speicherfunktion fr HYP, welche die aktuelle Seite als ASCII + speichert. + +13.11.2002 + -Nach der internen Umstellung luft nun (anscheinend) alles so wie in de= r + vorherigen Version. + -Die Mult-Window-Bugs sind nun hoffentlich behoben. + +02.10.2002 + -Sortier-Reihenfolge der HISTORY gendert (=3Dneuste Eintrge zuoberst) + -Allgemeine berarbeitung begonnen. (Da sich die Abstrze beim Gebrauch + des "Multi-Window-Features" nicht so einfach beseitigen liessen. + =3D strukturelle Schwchen) + -Die Standard-Pfadliste wird nun beim Starten automatisch an das Start- + laufwerk angepasst. (z.B. wird aus C: M: falls von M: gebootet wird.) + Dies betrifft nur die Standard-Pfade! D.h. es wird diese nderung nur + vorgenommen, falls keine andere Pfadliste aus der CFG geladen wurde. + -Bugfix: beim seitenweise Scrollen per Maus wurde immer eine Zeile + bersprungen. + -Bugfix: die Fileselect-Box im Fenster ist wieder zurck :-) + -Bugfix: Falls mehrere Fenster offen waren, geriet die "History" + manchmal durcheinander, was sogar zum Absturz fhren konnte. + -Bugfix: Memory-Leck bei der Anzeige von ASCII-Dateien beseitigt. + +24.09.2002 (v0.17) + -Bugfix: Unntige/Fehlerhafte Mfree-Aufrufe beseitigt. + -Bugfix: Datei-Handle wurde nicht geschlossen, falls die Datei beim + "zurck"-Bewegen erneut geffnet werden musste. + -Bugfix: ein zu ffnendes Fenster hat nun immer mindestens 1 Zeile und + 5 Kolonnen. Dadurch kann ein Absturz unter MagiC verhindert werden, + da kein "zu kleines" Fenster erstellt wird. + -Bugfix: Speicherschutz-Problem unter MiNT beseitigt (zumindest falls e= s + keine anderen mehr hat). + -Bugfix: Als ACC wurde nicht auf die AP_TERM Meldung reagiert. + +23.09.2002 (v0.16) + -Automatisches Anpassen der Fenster berarbeitet. Es sollte nun nicht me= hr + passieren, dass Fensterteile teilweise ausserhalb des sichtbaren Berei= chs + zu liegen kommen. + -Bugfix: Falls eine gerade offene Datei nochmals geffnet wurde, wurde + in der "History" die falsche Seitennummer gespeichert. + -HypView berprft nun auf Wunsch (in der Konfiguration CHECK_TIME=3D1) + vor dem erneuten Zugriff auf Dateien, ob sich diese gendert haben und + ladet sie erneut. (Praktisch beim Schreiben von Hypertexten und beim + Erstellen des KATALOG.HYP) + +18.09.2002 + -HypView luft nun auch falls die Zeilen von HYP_VIEW.CFG mit LF (=3DUni= x) + oder auch nur mit CR (=3DMac) abgeschlossen sind. + -Bugfix: Zeichenstze unterschiedlicher Grsse wurden nicht korrekt + verarbeitet. Dies fhrte zu "berreste" beim Scrollen. + +16.09.2002 + -Neues Schlsselwort in der Konfiguration: DEBUG_FILE + Alle Fehlermeldungen, die normalerweise auf STDERR (=3Dbei MagiC ist d= as + der Bildschirm) knnen auf eine beliebige Datei umgeleitet werden. + Dadurch lsst sich meine MiNT-Installation auch berreden die Fehler + anzuzeigen. + -Bugfix: Beim Starten als ACC wollte HypView die Parameter auswerten, + obwohl keine existieren bzw. die Daten ungltig sind. + -Bugfix: Es konnte vorkommen, das der Hilfe- und der Index-Button + anwhlbaren, obwohl es diese Seiten nicht gab. + -Abfrage auf WDIALOG vorlufig ausgebaut. (Hallo MiNTler :-)) + -Bugfix: Falls die HOME-Variable nicht mit einem '\' oder '/' ab- + geschlossen war, wurde auf einen ungltigen Pfad zugegriffen und die CF= G + nicht gefunden. + +15.09.2002 (v0.15) + -Popups, die im Hypertext per @previous und @next in den HYP integriert + sind werden nun auch geladen und dargestellt. (Vorher blockierten dies= e + die Navigation mittels "Vorwrts" und "Rckwrts".) + -Untersttzung von WINPOS: Bugs beseitigt und verbessert (=3Des ist nun + nicht mehr mglich das Fenster so zu positionieren, dass die Fenster- + elemente nicht mehr bedienbar sind). + -"CTRL+Klick geht nicht immer"-Bug beseitigt: 0 Byte am Stringende + vergessen :-) + -Falls in einem Hypertext keine Hilfe-Seite mittels @help definiert ist= , + wird nach dem Kapitel "Help" gesucht. + -Bugfix: Die Seite, die mittels @default in einem HYP definiert wird, + wurde flschlicherweise immer als Startseite benutzt. + -Bugfix: Ein Klick auf ein @limage fhrte zum Absturz. + +13.09.2002 + -Falls eine VA_START Meldung ankommt, die keine Datei als Parameter + enthlt, so wird dies als "Aufwecken" von HypView interpretiert. + Falls mit DEFAULT=3Dxy eine Datei definiert wurde, so wird diese geffn= et, + sonst wird der File-Selector geffnet. + -Bugfix: Als ACC gestartet konnte es vorkommen, dass HypView auf ein + nicht mehr existierendes Fenster zugriff, was natrlich zum Absturz + fhrte. + +04.09.2002 (v0.14) + -Untersttzung fr "echte" Page-Up und Page-Down Tasten (wird von + MagiCMac untersttzt). + -Falls kein Katalog mittels "KATALOG=3Dxy.hyp" definiert ist, dann lsst + sich das Katalog-Icon nicht mehr anwhlen. + -Bugfix: Bilder wurden beim zeilenweisen Scrollen "abgeschnitten". + +30.08.2002 (v0.13) + -Obwohl es noch einiges zu implementieren gbe, verffentliche ich diese + "Etape". + +22.08.2002 + -Links vom Typ SYSTEM_ARGUMENT, REXX_SCRIPT und REXX_COMMAND (=3D4-6) w= erden + nun folgendermassen behandelt: + -SYSTEM_ARGUMENT und REXX_SCRIPT fhren zu einer AV_STARTPROG Meldung + an den AV-Server. + -REXX_COMMAND fhrt zum Senden einer VA_START Meldung an den Host, der + mittels @hostname im Hypertext gesetzt wurde. + -Bei allen drei Typen wird vor dem Versenden der Meldung versucht ein= en + absoluten Pfad auf eine existierende Datei zu erstellen. D.h. als Pfad + wird der Zugriffspfad des Hypertexts genommen und das "Kommando" als + Dateinamen interpretiert. Wird eine solche Datei gefunden, so wird + die Meldung mit dem kompletten Zugriffspfad versendet. Ansonsten wird + nur das "Kommando" versendet. Z.B. findet QED dadurch die Dateien. + =3D> Beispiel in TEST.HYP/Kommunikation + -Interne-Representation der Hypertext-Seiten gendert. Dadurch wurde die + Anzeige und das Scrollen beschleunigt. Trotzdem scheint das Zeilenweis= e- + scrollen beim ST-Guide schneller zu gehen. + +21.08.2002 + -Weitere Anpassung des TEST.HYP + -NEU: Klick auf @alink Verweise ffnen nun ein neues Fenster. Es gibt ab= er + kaum Hypertexte die das bisher nutzen, da ST-Guide bekanntlich nur 1 + Fenster verwalten kann. Evtl. ndert sich das mit HypView? + -Links vom Typ 5 (REXX_SCRIPT) werden wie Typ 4 und 6 einfach an den + AV-Server weitergegeben. + -Links vom Typ 7 (QUIT) fhren zum Schliessen des aktuellen Fensters. + -Links vom Typ 4-6 werden zuerst als Pfade interpretiert und im aktuell= en + Verzeichnis gesucht. Falls diese Datei nicht existiert, wird statt des= sen + der unvernderte Link an den AV-Server bergeben. + Damit klappt es nun auch mit externen Verweisen auf nicht-Texte (z.B. = auf + eine Batch-Datei im aktuellen Verzeichnis =3D> siehe TEST.HYP). + +20.08.2002 + -Test-Hypertext berarbeitet und mit neuen Seiten fr nicht-existierende + Features ergnzt. Jetzt geht's an's implementieren. + +27.07.2002 + -Bugfix: Falls beim schliessen eines Hypertextes noch ein Popup-Fenster + offen war beendete sich das Programm nicht. + +14.07.2002 (v0.12) + -Funktionsnderung: CTRL+UP/DOWN (=3DStrg und Pfeilhoch/-runter) bewirke= n + nun wie SHIFT+UP/DOWN ein seitenweises Scrollen des Fensters. + Dadurch funktioniert die "Page-Up/Down" Taste von PC-Tastaturen auch + wie zu erwarten ist (und auch von anderen GEM-Programmen praktiziert + wird). Dadurch weicht die Bedienung von ArcView von der ST-Guide + blichen ab. + -Bugfix: Tastatur-Funktionen, die fr binr-/ASCII-Texte nicht verfgbar + sind, fhren nicht mehr zum Absturz. + -NEU: Falls CTRL whrend dem Klick auf einen Link gedrckt gehalten + wird, dann wird dieser in einem neuen Fenster dargestellt. + (Achtung: Die Datei wird erneut geladen! =3D> doppelter Speicherverbra= uch!) + -Falls der Zeichensatz gendert wurde (CTRL+Z), werden alle offenen + Dokumente aktualisiert und den entsprechenden Fenster eine Redraw- + Meldung geschickt. + -Links des Typs 6 (REXX_COMMAND) werden wie Typ 4 (SYSTEM_ARGUMENT) + behandelt. Dadurch wird das ffnen einer Datei mit einem speziellen + Viewer dem AV-Server berlassen (der also den passenden Viewer suchen + und starten muss). + -NEU: In der Konfigurationsdatei kann mittels VA_START_NEWWIN angegeben + werden, wie auf eine VA_START-Meldung reagiert wird (0=3Dkein neues Fe= nster + ffnen;1=3Devtl.;2=3Dimmer) + -Bugfix: Ein iconifiziertes Fenster wurde beim Laden einer neuen Datei + nicht automatisch "deiconifiziert". + +13.07.2002 + -Bugfix: Das Index-Icon ist nur noch anwhlbar falls auch wirklich eine + Index-Seite im Hypertext enthalten ist. + -Bugfix: Fehler in der Cache-Verwaltung beseitigt. Es wurde auf ein Hyp= er- + text zugegriffen, der nicht mehr komplett im Speicher war. + +29.06.2002 (v0.11) + -Bugfix: ACC Betrieb endete meist mit einem Bus-Fehler. + -Bugfix: Hyp-Header wurden unntigerweise mehrmals geladen, weil nicht + bemerkt wurde das die Datei schon geffnet ist. (=3D>Cache) + +26.06.2002 + -Bugfix: Falls keine Default-Datei angegeben wurde, gab es einen Crash. + -Neu: System-Argumente werden per AV_STARTPROG an den AV-Server bergebe= n. + (D.h. man kann nun z.B. den KATALOG.HYP erneuern) + -Neu: Falls eine Datei aus einer anderen geladen wird (z.B. Verweis auf + HISTORY.TXT), dann wird versucht die Datei im Pfad der geffneten Datei + zu ffnen. (Man sollte nicht "." in die Pfadliste aufnehmen, da sonst + HypView Dateien in seinem (!) Verzeichnis sucht.) + -Bugfix: Der Link-Effekt wurde erst ab 16 Farben bernommen. + +25.06.2002 (v0.10) + -Bugfix: Speicherleck beim wechseln zwischen Dateien gestopft. + -Cache-Funktion wieder implementiert. + -Bugfix: "Speicher-Schiesser" beseitigt. + -Bugfix: Wechsel zwischen HYP-Dateien und anderen Formaten klappt + wieder (=3D> Cache-Leerungs-Bug beseitigt) + -Popups funktionieren wieder. + -Zeichensatz-Wechsel (FONT <-> XFONT) mittels CTRL+Z klappt wieder. + -Bugfix: TOS.HYP luft nun wieder. + -Bugfix: Bestimmen der Klickposition funktioniert nun auch mit Hyper- + texten, die Bilder enthalten und mit HCP < 3 erstellt wurden. + (=3D"Chrysalis-Bug") + +24.06.2002 + -Navigation mittels Links wieder implementiert + +20.06.2002 bis 22.06.2002 + -HYP-Format wird nun wieder geladen und angezeigt. (Nachwievor nach + der alten Methode) + -Navigation mittels Iconleiste und Tastatur wieder eingebaut. + +19.06.2002 + -Bugfix: Ein CTRL+ALT+HOME fhrt nicht mehr zum iconifizieren des + Fensters. + -Die Konfiguration wird nun wieder aus der Datei geladen. + Dabei habe ich einige Konfigurations-Punkte umgetauft und ein paar neu= e + eingefhrt (TEXT_COLOR, BIN_COLUMNS, ASCII_TAB, LINK_EFFECT). + +16.06.2002 + -Neu: Untersttzung fr ASCII Texte mit Atari-/PC-,Mac- und Unix-Zeilen- + enden. (Es knnen nur Dateien geladen werden, die vollkommen in den + Arbeitsspeicher passen.) + Ein Text wird als ASCII Text erkannt falls er keine Zeichen unter dem + Wert 32 enthlt (mit Ausnahme von CR, LF und TAB). + -Binrdateien haben eine fixe Zeilenlnge (zur Zeit 76, wird aber spter + konfigurierbar). + -Beschleunigtes Scrolling, durch das ich mittels zustzlichem Speicher + eine Tabelle mit allen Zeilen-Anfnge erstelle. + +15.06.2002 + -Komplette berarbeitung begonnen. + Das Konzept wird nun modularisiert, d.h. es werden in Zukunft mehr als + nur HYP Dateien untersttzt. (Binr, ASCII, HYP fr den Anfang) + -Laden und Darstellen von Binrendaten klappt. (0-Zeichen werden als + Leerzeichen ausgegeben) + -Untersttzung fr mehrere Fenster. + +11.06.2002 + -Bugfix: Beim Berechnen der maximalen Seitenhhe wurde die Hhe von + "@image" nicht korrekt bercksichtigt. + -Bugfix: @limage Tags werden nur noch interpretiert, falls der + Hypertext mit dem HCP Version 3 (=3Daktuellste) compiliert wurden. + Dadurch wird die Darstellung von "alten" Hypertexten verbessert. + +09.06.2002 (v0.07) + -HypView bildet nun nicht mehr die Fensterbreite als Minimum von + @width und der ermittelten Kolonnenanzahl. (Anscheinend ist das + wieder einmal ein Fehler in der ST-Guide Dokumentation.) + -Bugfix: Falls WINADJUST=3D0 war und keine Fensterposition mittels + WINPOS definiert wurde, wurde das Fenster in maximaler grsse + geffnet, was beim Scrollen meistens zu abgeschnittenen Texten + fhrte. (Hallo Thomas! Ich habs gefunden :-)) + -Bugfix: Manchmal wurden falsche Text-Attribute beim Neuzeichnen + benutzt. + -Bugfix: Bei der Suche nach der Seite wird nun Gross-/Kleinschreibung + ignoriert. + -Bugfix: Bei von Aussen bewirkten Seitenwechsel (z.B. Hilfe-Aufruf aus + einem anderen Programm) wurde immer der Cache-Speicher gelscht und + ein History-Eintrag vermerkt, auch wenn der Sprung innerhalb der + gleichen Datei war und die Zielseite schon dargestellt wurde. + +05.06.2002 (v0.06) + -Falls eine Datei nicht gefunden wird, wird der Name in der Fehler- + meldung erwhnt. + -Gunnar hat die 16 Farben-Version berarbeitet. + +04.06.2002 + -Problem entdeckt: Bei den Konfigurationsvariablen wie z.B. PATH, + KATALOG, DEFAULT darf kein Kommentar in der gleichen Zeile stehen, + da sonst die Daten falsch interpretiert werden. Also Vorsicht! + +02.06.2002 + -Gunnar Grbel hat sich die Mhe gemacht die HypView-Resource einwenig + an die modernen Zeiten anzupassen und hat ein paar schne Icons in + 256 Farben gestaltet. (Vielen Dank!) + -Ich habe die Icons rasch in 16 Farben konvertiert. + -Bugfix: Das Icon fr das History-Popup wurde aktiviert, obwohl diese + Funktion noch nicht verfgbar ist. + +25.05.2002 + -ACC Behandlung gendert: + CTRL+Q als ACC: Schliessen aller Fenster + als APP: Beenden des Programmes + AP_TERM : Beendet immer das Programm! + +23.05.2002 (V0.05) + -Tastatur-Wiederholung wird nun beim Auswerten deaktiviert. + Dank Richard klappt dies sogar auf einem sauberen Weg (wenn mglich). + -Die Hintergrundfarbe wird nur noch bercksichtigt, falls mindestens + 16 Farben zur verfgung stehen. (=3DFalls man einmal im S/W Modus start= et, + kann man doch noch Hypertexte ansehen.) + -Es ist nun mglich HypView auch zu beenden falls es als ACC gestartet + wurde. --> Vorsicht unter SingleTOS!! + -Es wird nun immer die selbst ermittelte Zeilenbreite verwendet auch fa= lls + das Header-Tag @width existiert. Der ST-Guide macht das auch so. + (=3D> Hypertext Dokumentation ist da fehlerhaft!) + -Bugfix bei der True-Color Anpassung von grossen Bildern beseitigt. + -Bilder werden nun wie beim ST-Guide "transparent" ausgegeben. + Falls die Darstellung mit 16 bis 256 Farben erfolgt verursacht dies + mehr Aufwand als ohne Transparenz! + Das Feature kann mit "TRANSPARENT_PICS=3D0" deaktiviert werden. + +08.05.2002 + -Minimale Verbesserung bei der True-Color Konvertierung (=3Dnur noch 15 + Mono-Bitmaps mit vrt_cpyfm()) + +04.05.2002 + -True Color Untersttzung vollstndig umgeschrieben. Nun werden alle + einzelnen Farben extrahiert und als Monochrombitmap mit vrt_cpyfm() + in das True Color Bild geschrieben. + Dies ist zwar langsam, funktioniert jedoch auf allen Grafikkarten?! + -Bugfix bei der Parameterbergabe (Dateiname - Kapitelname). + Ausserdem wird nun auf ".HYP " (nicht nur "HYP ") getestet um den + Kapitelnamen zu finden. + +01.05.2002 (V0.03) + -CTRL+I zeigt die Versionsnummer von HypView an. + -HYP-View luft nun endlich als ACC! (Das Programm verhlt sich prinzip- + iell genau gleich. D.h. ich treffe keine Sicherheitsmassnahmen um die + Lauffhigkeit unter TOS sicherzustellen!) + +30.04.2002 + -Wie ich vernehmen konnte, klappt's nun mit der NOVA-Kompatibilitt, + aber mit der Milan- und der Eclips-Grafikkarte luft's noch nicht :-( + -Falls kein Default-Hypertext angegeben wurde (DEFAULT=3Dxy), dann wird + die Fileselect-Box aufgerufen. + Mittels CTRL+O kann sie jederzeit erneut aufgerufen werden. + Auch das Icon zum Laden der Datei ist jetzt aktiv. + -Bugfix: Falls eine Datei schon geffnet/geladen wurde, konnte es + vorkommen, dass bei einem erneuten Verweis auf diesen Hypertext + nicht bemerkt wurde, dass er schon im Speicher ist. (=3D> doppelt + geladen) + -Kommandozeile, VA_START- und Drag&Drop-Parameter: + -Falls die ersten 3 Zeichen "*:\" sind, so werden diese bersprungen. + (Nach ST-Guide-Konvention wird dieses Format verwendet, falls das + Programm den absoluten Pfad einer Datei nicht weiss.) + -Am rechten "Parameter-Rand" wird nach einem Kapitelnamen gesucht + -Der Rest wird als Pfad angesehen. Konnte die Datei nicht geffnet + werden, so wird versucht mit Hilfe der PATH Variable die Datei + zu finden. + Benennt man nun HYP_VIEW.APP in ST-GUIDE.APP um und lsst es laufen + (da es noch nicht als ACC luft), so schicken alle ST-Guide-kompatiblen + Programme ihre Hilfe-Anfragen an HYP-View! + -Aus historischen Grnden werden die Kapitelnamen mit einem ' ' + (=3DLeerzeichen) vom Pfad/Dateinamen getrennt. Der original ST-Guide + interpretierte also ab dem ersten Leerzeichen alles als Kapitelnamen. + Dies fhrte dazu, dass der ST-Guide nicht mit Leerzeichen im Pfad + zurechtkam. + Um nun kompatibel zu bleiben und trotzdem Leerzeichen im Pfad/Dateinam= en + zu erlauben sucht HYP-View nicht einfach nach einem Leerzeichen, sonde= rn + nach der Datei Extension "HYP" gefolgt von einem Leerzeichen. Wird als= o + die Zeichenfolge "HYP " (Gross-/Klein-Buchstaben ist egal) im Pfad + gefunden, so wird der Rest als Kapitelnamen interpretiert. + =3D=3D> Also Achtung: Keinen Pfad erstellen, der auf dieses Muster pas= st, + da die darin enthaltenen Hypertexte nicht gefunden werden knnen! + +28.04.2002 + -nderungen am True-Color Workaround. + -Externe Konfiguration ber die HYP_VIEW.CFG erweitert: + -WINPOS erlaubt nun Breite und Hhe (in Zeichen!) + -WINADJUST aktiviert/deaktiviert die autom. Fenstergrssen-Anpassung + -BACKCOL erlaubt das Einstellen der Hintergrundfarbe. + (im Gegensatz zum ST-Guide werden die Bilder nicht transparent + gezeichnet.) + -Ein paar Kommentare zu den verschiedenen Variablen eingefgt. + -Bugfix: Absturz falls kein GDOS installiert war. + -Datei-Existenz wird nun mittels Fopen/Fclose berprft anstatt mit + Fxattr. Damit luft HYP-View auch unter Single-TOS (zumindest unter + TOS 4.04 habe ich kein Problem bemerkt). + +27.04.2002 + -Anscheinend klappt's mit dem True-Color Workaround nicht. + -Bugfix: Da die @limage-Definition anscheinend nicht ganz rckwrts- + kompatibel ist (was sich beim NOVA-Hypertext herausstellte), werden + nun Bilder mit der Breite =3D 1 Zeichen als @limage Bilder interpretie= rt. + Dadurch sollte es keine Probleme mit Hypertexten vor dem 19.04.1995 + mehr geben. + -Tests haben gezeigt, dass HYP-View die Bilder von Hypertexten, die + mit dem HCP vor dem 19.04.1995 erstellt wurden, nicht 100% an der + gleichen stelle wie beim ST-Guide anzeigt. (=3DHYP-View: 1 Pixel weite= r + unten) + +26.04.2002 + -Nachdem ich auf meine "Alpha-Preview" einige Reaktionen erhalten habe, + stellte sich auch heraus, dass es Probleme mit verschiedenen Grafik- + karten gibt unteranderem: NOVA und die im Milan eingebaute. + Der Fehler liegt wahrscheinlich daran, dass diese die Little-Endian + Darstellung benutzen (=3Dalso die auf dem PC gebruchliche). Daher habe + ich einen weiteren Workaround eingebaut. + -Neues Schlsselwort in der Konfigurationsdatei: LITTLEENDIAN=3D1 + aktiviert die Little-Endian Darstellung bei Grafikkarten. (Ich weiss, + dass das keine gute Lsung ist. Aber evtl. luft's so auf die schnelle!) + +21.04.2002 + -Eine "busy bee" zeigt nun, dass gerade eine Seite geladen wird. + Dies ist vorallem wichtig beim langen Laden des TOS.HYP Indexes :-) + -Wie ich bei Tests mit dem HCP erfahren musste, werden nur Bilder + mit 1 oder 4 Ebenen (=3Dmonochrom und 16 Farben) untersttzt, dadurch + verringert sich der Aufwand fr mich: Ich muss nur eine Routine + schreiben, die 4 Planes in 1 Plane konvertiert. + -Falls zuwenig Farben zur Darstellung der Bilder im Original vorhanden + sind, wird das gleiche Verfahren wie beim ST-Guide angewendet: + Alle Farben bis auf Weiss und Hellgrau werden Schwarz gefrbt. + -Falls bis zu 8 Ebenen (=3D256 Farben) vorhanden sind, werden die Bilde= r + "expandiert". + -Rudimentre (=3Dusserst schlechte) Routine, die Bilder ins Gerte + abhngige True-Color Format konvertiert. (Bisher lediglich auf meinem + Falcon in High-Color (16Bit) getestet.) + +20.04.2002 + -Mit der Tastenkombination CTRL+Z kann zwischen den 2 Zeichenstzen + (FONT und XFONT) gewechselt werden. + -Bugfix: Beim Bestimmen der Fensterbreite wurden flschlicherweise + Linienbefehle als Text und als Linien interpretiert, was je nach + Anzahl Linien zu einer unntig grossen Fensterbreite fhrte. + -Die Einstellungen werden nun aus der Datei HYP_VIEW.CFG geladen. + Damit lassen sich endlich die Einstellungen "von Aussen" verndern. + +18.04.2002 + -Untersttzung von Popup-Texten. + Verbesserungen gegenber dem ST-Guide: + - Popup in einem eigenen Fenster (=3Dohne Randelemente), jedoch + Applikations-modal. + Dadurch bleibt die Menuzeile aktiv und die Ausgabe anderer + Programme wird nicht blockiert. + - Popups knnen auch Grafik-Objekte und Bilder enthalten. + (Dummerweise entfernt der HCP die Objekte aus den "pnode"s, + da der ST-Guide dies nicht verkraftet. Abhilfe: man muss ein + normaler Eintrag (=3D"node") erstellen und nach dem compilieren + mit HCP den Header von Hand anpassen!) + - Die Grsse ist nicht beschrnkt. Es werden aber keine Slider + angezeigt, falls das Popup grsser als der ganze Bildschirm + ist. =3D> Zu grosse Popups werden nicht ganz angezeigt. + (aber trotzdem besser als die 12 Zeilen mit 60 Zeichen, die + der original ST-Guide bietet) + +13.04.2002 + -Nun kann man zur Anzeige auch proportionale Zeichenstze verwenden. + Die Darstellung ist dabei (wie schon bei den quidistanten Zeichen- + stzen) 100% ST-Guide kompatibel. + -Probleme bereiten die kursiven Texte, da zur Berechnung der "Klick- + Position" die Breite jedes Zeichens genommen wird. Und nicht etwa + die Breite der einzelnen Worte. Dadurch, kann die genaue Position + der angeklickten Stelle nicht bestimmt werden! + Dieses Problem hat aber der "echte" ST-Guide auch schon! + -Falls sich an der angeklickten Position nichts befindet, wird das + darunterliegende Wort ermittelt und an eine Pseudo-Suchmaschine + bergeben. + +11.04.2002 + -Nach tagelanger Suche, habe ich endlich herausgefunden, warum die Tite= l- + Grafik des "Chips'n'Chips" Hypertextes falsch dargestellt wurde: + Grafiken drfen auch grsser als die 65 KB sein. Die wahre grsse muss + aber mit Hilfe des "Next" Wertes berechnet werden. + D.h. "Next" enthlt das High-Word der Lnge der entpackten Daten. + Etwas kompliziert formuliert. Wer also genau wissen will wie das geht, + kann bei mir nachfragen. + +07.04.2002 + -Bugfix: Das Anpassen der Fensterbreite und Hhe bercksichtigte + nicht die aktuelle X/Y Position. + +12.03.2002 + -GetLink() korrigiert. (Nach wie vor keine Untersttzung fr + proportionale Zeichenstze) + -Beim Anzeigen einer neuen Seite springt das Fenster nicht stndig + in die obere linke Ecke. D.h. es wird nur noch Breite und Hhe + angepasst. + -Die wichtigsten Tastenkrzel zum Navigieren im Hypertext implementiert. + +Nachdem ich umgezogen bin, hatte ich endlich wieder Zeit um an meinem +Programm zu basteln: + + +11.03.2002 + -Die 1. Plane aller Bilder wird nun korrekt dargestellt. Das bedeutet, + dass man mit HypView monochrome Hypertexte ansehen kann. + Bei Farbbildern kann man teilweise nur erahnen, was dargestellt wird. + -Der Index- und der Katalog-Button haben nun ihre Funktion erhalten. + (Index springt zur Seite mit dem Namen "Index" und Katalog ffnet die + Datei "KATALOG.HYP") + +05.03.2002 + -Externe-Referenzen funktionieren nun auch. + -History-Eintrge knnen nun auf andere Dateien zeigen. + -Falls die Datei nicht im aktuellen Verzeichnis gefunden wird, so wird + noch in den angegebenen Suchpfaden gesucht. + +03.03.2002 + -Nun kann man auch mit Mausklicks auf Links durch den Hypertext "browse= n" + wobei das anzeigen von externen Referenzen und Popups noch nicht klapp= t + und einfach mit einer Meldung quittiert wird. + Das ganze muss noch etwas umstrukturiert werden! + -Probleme bei der History, falls sich der Pfad gendert hat. + +02.03.2002 + -Die Reihenfolge der Seiten (=3Dinterne Vernetzung) wird nun beim Bltte= rn + bercksichtigt. Falls es in eine Richtung nicht mehr weitergeht, so + wird der entsprechende Richtungspfeil versteckt. + -Ich habe provisorisch die Icons vom ST-Guide bernommen. Schliesslich + soll spter einmal jede seiner Funktionen bernommen werden. + +28.02.2002 + -Die Anzeige klappt nun. Probleme bereiteten mir die "@limage" Bilder. + Die Anzeige basiert nun auf folgenden Annahmen: + Alle Grafikobjekte ("image","limage","box","line","rbox") befinden + sich am Anfang der entpackten Daten. + Danach befindet sich der eigentliche Text (inkl. Textattribute und + -Bisher funktioniert erst das vorwrts und rckwrts Blttern ohne die + Reihenfolge zu beachten, also Node 0,1,2,... + +27.02.2002 + -Bugfix: Bei der Verwendung von Textattributen wurde nicht beachtet, da= ss + je nach Effekt der Text breiter wurde (z.B. Italic). + +16.02.2002 bis 23.02.2002 + -berarbeitung der Anzeigeroutinen + -Es wird bei jedem Redraw der ganze Hypertext neu gezeichnet + =3D=3D> nicht besonders schnell! + -Probleme mit "limage" bestehen noch. + -Bei Bildern wird bisher nur die 1. Plane dargestellt (=3Dkein Dithern= , + keine farbigen Bilder) + +15.02.2002 + -Arbeiten am "GEM-Gewand": Texte werden nun in einem Fenster dargestell= t. + Noch keine Grafiken implementiert. + +30.01.2002 + -Kleine Umstrukturierung, damit die Routinen wie eine Bibliothek + zu einem anderen Programm dazugelinkt werden knnen. + +=3D=3D> jetzt muss das ganze in eine GEM-Applikation "gestrickt" werden. + + +29.11.2001 + -Die HYP-Laderoutine neu geschrieben: + -HYP_DOCUMENT enthlt nun die Indextabelle sowie Zusatzinfos + (Autor, Version, ...) und natrlich der Zugriffspfad auf die Datei. + -Besteht nun aus einem einzigen Speicherblock (=3Dnicht mehrere + "Mfree()" ntig um das Dokument zu entfernen) + -DisplayXY() Routinen angepasst. + +25.11.2001 + -interne Reorganisation + +22.11.2001 + -Verarbeitet nun die meisten getesteten Seiten. D.h. bisher werden alle + grafischen Attribute bersprungen. + -Kann auch verschlsselte Dateien lesen (wie z.B. Chips&Chips) + +20.11.2001 + -Einfache Textdarstellung einer Seite ohne Grafiken und Links klappt + nun einigermassen. + +19.11.2001 + -Nachdem ich seit geraumer Zeit mit dem Gedanken gespielt habe einen + eigenen HYPertext Viewer zu schreiben, habe ich endlich mit etwas + Code begonnen. (Ausserdem habe ich auch schon seit lngerer Zeit den + Quelltext zu WinGuide von dessen Autor Frank Rger erhalten.) + Es steht also nichts mehr im Weg um das Projekt zu realisieren. + -Die erste Version ist wie immer eine ".TOS" Version mit Textausgaben. + Zur Zeit wird lediglich der HYP-Header sowie die Index-Daten aus einer + HYP-Datei geladen und eine Indextabelle im Speicher erstellt. + Danach wird ein "Baum-Artiger" Index angezeigt. Index: doc/hypdoc.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/doc/hypdoc.txt,v retrieving revision 1.2 diff -u -r1.2 hypdoc.txt --- doc/hypdoc.txt 6 Apr 2008 15:47:03 -0000 1.2 +++ doc/hypdoc.txt 31 Aug 2009 09:34:21 -0000 @@ -1,295 +1,295 @@ -ST-Guide Hypertext Format (=3DHYP) -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D -Dies ist eine Dokumentation des ST-Guide Hypertext Formats. -Sie basiert auf der Dokumentation, die man im HCP Hypertext von Holger -Weets findet. Dazu habe ich an einigen Stellen Ergaenzungen angebracht, -welche mir beim Programmieren meines Hypertext Viewers aufgefallen sind. -Meine Ergaenzungen sind mit [PhD] gekennzeichnet. - -Diese Dokumentation bitte nicht weitergeben! - -Philipp Donze Chavornay, 05.05.2= 002 - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D schnipp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -Header eines Hypertextes ------------------------- -Der Header einer Hypertext Datei ist wie folgt aufgebaut: - 4 Bytes Magic ('HDOC') - 4 Bytes Laenge der Indextabelle - (Seiten, Bilder, ext. Referenzen, system, rexx) - 2 Bytes Anzahl der Eintraege in dieser Tabelle - 1 Byte Kennung, mit welcher Version des Compilers uebersetzt wurde - (aktuell 3) - 1 Byte Kennung, unter welchem Betriebsystem uebersetzt wurde - (0: unbekannt, 1: AMIGA, 2: ATARI, 3: Macintosh) - - -Indexbereich eines Hypertextes ------------------------------- -1 Byte Laenge dieses Eintrages -1 Byte Typ dieses Eintrages - 0: interne Seite (@node) - 1: Popup-Node (@pnode) - 2: externe Referenz (@{... link FILE [LINE]}) - 3: Bild (@image) - 4: SYSTEM-Argument (@{... system ARG}) - 5: REXX-Script (@{... rxs FILE}) - 6: REXX-Kommando (@{... rx ARG}) - 7: QUIT Dummy-Eintrag (@{... quit}) -4 Bytes Seek Offset in die Datei -2 Bytes Differenz entpackte/gepackte Laenge des Objektes -2 Bytes Index des Nachfolgers -2 Bytes Index des Vorgaengers -2 Bytes Index des Inhaltsverzeichnisses fuer dieses Objekt -x Bytes Name des Objektes, nullterminiert -evtl. ein weiteres Nullbyte, damit der naechste Eintrag wieder - auf einer geraden Adresse liegt - -Von diesen Strukturen finden sich so viele in der Datei, wie der -entsprechende Wert im Header angibt. - -Die Laenge einer Seite berechnet sich aus der Differenz der -Seek-Offsets dieser Seite und der des Nachfolger-Objektes. - - -Erweiterte Header ------------------ -Erweiterte Header dienen i.w. dem Zweck, alle Daten auch bei Er- -weiterungen des Systems kompatibel zu aelteren Versionen zu halten. - -Der Aufbau eines solchen Headers ist wie folgt: -2 Bytes Kennung -2 Bytes Laenge -n Bytes Daten - -Aktuell existieren folgende Header: -0 Ende-Kennung, es folgen keine weiteren Header mehr -1 Database Name, es folgen Laenge und C-String - (@database) -2 Name der Default-Node, es folgen Laenge und C-String - (@default) -3 Name der Host-Applikation(en), es folgen Laenge und C-String(s) - (@hostname) -4 Optionen, die von den Default-Einstellungen abweichen, es - folgen Laenge und C-String - (@options, Kommandozeile) -5 Name des/der Autoren, es folgen Laenge und C-String - (@author) -6 Versions-Information, es folgen Laenge und C-String - (@$VER:) -7 Name der Hilfe Seite, es folgen Laenge und C-String - (@help) -8 Beschreibung der Gebiete, in die der Text einzuordnen - ist, es folgen Laenge und C-String - (@subject) -9 HypTree-Header; Aufbau: - 4 Bytes Summe der Laengen aller expliziten Titel - Array von Wortbreiten Bitvektoren: - 1. Wort: Bit n =3D=3D 1 -> Seite n hat einen expliziten Titel - 2. Wort: Bit n =3D=3D 1 -> Seite 16+n hat einen expiziten Titel - usw. -10 Flags fuer den ST-Guide (2 Bytes) - Falls das Bit 10 gesetzt ist, so ist der Hypertext verschluesselt. [= PhD] -11 verwendete Zeilenlaenge (@width) - -Ein Lesealgorithmus fuer diese Header muss alle ihm nicht bekannten Head= er -ohne Warnung oder Fehlermeldung ueberlesen. - - - -Datenbereich eines Hypertextes ------------------------------- -Alle Seiten, Popup's und Bilder, die im Hypertext definiert wurden. -Meist liegen die Daten in gepackter Form vor, so dass sie nicht ohne -weiteres verwendet werden koennen. Der verwendete Pack-Algorithmus -entspricht dem LH5 Verfahren des LHarc, ist somit sehr effizient und -zumindest beim Auspacken auch schnell genug. -Die Reihenfolge der Daten-Objekte entspricht der der Indextabelle, -externe Referenzen, system- und rexx-Eintraege besitzen keine Daten -in diesem Bereich, die Daten gehoeren folglich immer zu einer - * Textseite oder zu einem - * Bild - - -Format einer [p]node --------------------- -Gehoeren die Daten zu einer Textseite (@node, @pnode), so haben die -(entpackten) Daten folgendes Format: - a) optionaler Grafikbereich (nur @node) - Hier werden alle grafischen Objekte dieser Seite wie - folgt beschrieben: - 1 Byte Kennung (27, ESCAPE) - 1 Byte Typ - 50: Bild (@image) - 51: Linie (@line) - 52: Box (@box) - 53: Box mit runden Ecken (@rbox) - 2 Bytes Index, falls Bild - damit keine 0-Bytes entstehen, liegt dieser Wert zur Basis - 255 vor und zu beiden Bytes wurde der Wert 1 addiert - 1 Byte X-Offset in Zeichen - Bilder: falls X =3D 0 =3D=3D> zentriert [PhD] - 2 Bytes Y-Offset in Zeichen - damit keine 0-Bytes entstehen, liegt dieser Wert zur Basis - 255 vor und zu beiden Bytes wurde der Wert 1 addiert - 1 Byte Breite des Objektes in Zeichen - Bilder: falls Breite =3D 1 =3D=3D> limage [PhD] - 1 Byte Hoehe des Objektes in Zeichen - 1 Byte Data, falls kein Bild - Bevor folgende Aufschluesselung angewendet werden kann muss - zuerst "Data" um eins verkleinert werden! [PhD] - Linie: Bit 0 =3D=3D 1: Pfeilspitze am Anfang - Bit 1 =3D=3D 1: Pfeilspitze am Ende - restliche Bits: Linienstil - Box: - RBox: Fuellmuster - Bei Bildern werden Breite und Hoehe ignoriert, bei Linien bilden - sie das umgrenzende Rechteck. - - b) optional bis zu 12 Querverweis-Datenbloecke - 1 Byte Kennung (27, ESCAPE) - 1 Byte Typ (48) - 1 Byte Laenge (ueber alles) - 2 Bytes Indexnummer der Zielnode (im 255er Format [PhD]) - Text fuer das Popup, Nullterminiert - - c) optional weitere Datenbloecke - 1 Byte Kennung (27, ESCAPE) - 1 Byte Typ (40-47) - 1 Byte Laenge (ueber alles) - Daten - - d) optional Fenstertitel (@node, @title) - 1 Byte Kennung (27, ESCAPE) - 1 Byte Typ (35) - Fenstertitel, Nullterminiert - evtl. Fuellbyte, damit der Text auf einer geraden Adr. - beginnt - - e) optional Tabelle mit Objekten & Seiten (@tree) - 1 Byte Kennung (27, ESCAPE) - 1 Byte Typ (49, ObjTable) - 2 Bytes Zeilennummer in der Zielseite - 2 Bytes Nummer des Baumes - 2 Bytes Objekt in diesem Baum - 2 Bytes Index der Seite - Damit keine 0-Bytes entstehen, liegen alle 2 Byte Werte zur - Basis 255 vor und zu beiden Bytes wurde der Wert 1 addiert; - - f) optional Text mit Attributen - Die einzelnen Zeilen sind durch ein 0-Byte abgeschlossen und - koennen beliebig viele nicht auszugebende Zusatz-Information - enthalten. - - Diese Informations-Sequenzen werden jeweils durch das Zeichen - ESCAPE (27) eingeleitet, ihm folgt ein weiteres ESCAPE oder - ein Typ, im ersten Fall ist das Zeichen ESCAPE auszugeben und - im zweiten Fall bestimmt der Typ das weitere Vorgehen: - 36: Referenz auf andere Seite - @{... link NODE} - 37: wie 36, aber mit Zeilennummer - @{... link NODE LINE} - 38: wie 36 nur durch 'alink' erzeugt - @{... alink NODE} - 39: wie 38, aber mit Zeilennummer - @{... alink NODE LINE} - >=3D 100: Vektor fuer Textattribute: - nach Abzug von 100 ergibt sich folgender - Bitvektor: - 1: Fettschrift - 2: helle Schrift - 4: Kursivschrift - 8: unterstrichen - 16: 'Outlined' - 32: schattierte Schrift - - Bei Typ 37 und 39 folgen 2 Bytes Zeilennummer; damit keine - 0-Bytes entstehen, liegt dieser Wert zur Basis 255 vor und - zu beiden Bytes wurde der Wert 1 addiert - - Bei Typ 36-39 folgen nun - 2 Bytes Index in die Tabelle aus dem Indexbereich; - damit keine 0-Bytes entstehen, liegt dieser Wert zur - Basis 255 vor und zu beiden Bytes wurde der Wert 1 - addiert - 1 Byte Laenge des betreffenden Strings + 32 - ist die Laenge gleich 32, so ist hier direkt der Name - des indizierten Objektes auszugeben, ansonsten so - viele Zeichen, wie die Laenge angibt, minus 32 aus - der nachfolgenden Zeichenkette - - -Format eines Bildes -------------------- -Gehoeren die Daten zu einem Bild, so liegt (nach dem Entpacken) -folgendes Format vor: - a) Header - 2 Bytes Breite des Bildes in Pixeln (wird ignoriert) - 2 Bytes Hoehe des Bildes in Pixeln (wird ignoriert) - 1 Byte Anzahl der Planes (1..8) - 1 Byte 'Planepic': Bit n =3D=3D 1 --> Daten fuer Plane n - vorhanden - 1 Byte 'PlaneOnOff': Bit n =3D=3D 1 --> Plane ganz ausgefuellt - 1 Byte Filler, damit das Bild auf gerader Adr. liegt - b) 1. Plane - optional 2. Plane - ... - optional 8. Plane - - -Format einer REF Datei ----------------------- -Datei-Kennung - 4 Bytes Magic ('HREF') - -Modul-Header - 4 Bytes Laenge des Moduls ohne Header - 4 Bytes Anzahl der Eintraege im aktuellen Modul - -Modul-Daten - 1 Byte Kennung des Eintrages - 0: Dateiname (z.B. 'ST-GUIDE') - immer ohne Pfad - (eintragen eines Pfades ist jedoch erlaubt) - und meist auch ohne Endung - (als Endung wird .HYP verwendet, falls keine angegeben) - 1: Node Name - Seitenname aus dem Hypertext zum letzten Datei-Eintrag - 2: Alias Name - Aliasname aus dem Hypertext zum letzten Node-Eintrag - (wird vom hcp nur optional hier eingetragen) - 3: Label Name - Labelname aus dem Hypertext zum letzten Node-Eintrag - (wird vom hcp nur optional hier eingetragen) - 4: database Name - Database-Argument zum letzten Dateieintrag - 5: Kennung des Betriebsystemes, unter dem der Hypertext - uebersetzt wurde - ('0': unbekannt, '1': AMIGA, '2': ATARI, '3': Macintosh) - - 1 Byte Laenge des Eintrages - n Bytes Eintrag als Nullterminierter String - bei Typ 3 folgen dem String noch 2 Bytes Zeilennummer - -Beliebig viele weitere Modul-Header gefolgt von Modul-Daten. - - 8 Bytes Nullen als Ende-Kennung - [PhD] Diese 8 0-Bytes sind nicht in der Modul-Laenge enthalten! - - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D [PhD]= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D -Ab hier folgen meine eigenen Notizen: - --Format einer externen Referenz (=3DNode Typ 2 bzw. @{... link FILE [LIN= E]}) - Es gibt keine Daten zum Laden, daher ist im Index die Laenge 0. Saemtli= che - Daten befinden sich im Namen des Index-Eintrags und zwar im folgenden - Format: - / - --Groessen-Angabe bei Bildern: - Da Bilder groesser als 65KB sein koennen, die Angabe ueber die Laenge d= er - entkomprimierten Daten aber auf 2 Bytes (=3Dbis zu 65536 Bytes an Daten= ) - beschraenkt ist, wird zur Berechnung der waren Groesse der Index-Eintra= g - "next" zu hilfe gezogen: - entkomp. Groesse =3D komp. Groesse + (index->next<<16)+index->comp_di= ff -=20 +ST-Guide Hypertext Format (=3DHYP) +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D +Dies ist eine Dokumentation des ST-Guide Hypertext Formats. +Sie basiert auf der Dokumentation, die man im HCP Hypertext von Holger +Weets findet. Dazu habe ich an einigen Stellen Ergaenzungen angebracht, +welche mir beim Programmieren meines Hypertext Viewers aufgefallen sind. +Meine Ergaenzungen sind mit [PhD] gekennzeichnet. + +Diese Dokumentation bitte nicht weitergeben! + +Philipp Donze Chavornay, 05.05.2= 002 + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D schnipp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +Header eines Hypertextes +------------------------ +Der Header einer Hypertext Datei ist wie folgt aufgebaut: + 4 Bytes Magic ('HDOC') + 4 Bytes Laenge der Indextabelle + (Seiten, Bilder, ext. Referenzen, system, rexx) + 2 Bytes Anzahl der Eintraege in dieser Tabelle + 1 Byte Kennung, mit welcher Version des Compilers uebersetzt wurde + (aktuell 3) + 1 Byte Kennung, unter welchem Betriebsystem uebersetzt wurde + (0: unbekannt, 1: AMIGA, 2: ATARI, 3: Macintosh) + + +Indexbereich eines Hypertextes +------------------------------ +1 Byte Laenge dieses Eintrages +1 Byte Typ dieses Eintrages + 0: interne Seite (@node) + 1: Popup-Node (@pnode) + 2: externe Referenz (@{... link FILE [LINE]}) + 3: Bild (@image) + 4: SYSTEM-Argument (@{... system ARG}) + 5: REXX-Script (@{... rxs FILE}) + 6: REXX-Kommando (@{... rx ARG}) + 7: QUIT Dummy-Eintrag (@{... quit}) +4 Bytes Seek Offset in die Datei +2 Bytes Differenz entpackte/gepackte Laenge des Objektes +2 Bytes Index des Nachfolgers +2 Bytes Index des Vorgaengers +2 Bytes Index des Inhaltsverzeichnisses fuer dieses Objekt +x Bytes Name des Objektes, nullterminiert +evtl. ein weiteres Nullbyte, damit der naechste Eintrag wieder + auf einer geraden Adresse liegt + +Von diesen Strukturen finden sich so viele in der Datei, wie der +entsprechende Wert im Header angibt. + +Die Laenge einer Seite berechnet sich aus der Differenz der +Seek-Offsets dieser Seite und der des Nachfolger-Objektes. + + +Erweiterte Header +----------------- +Erweiterte Header dienen i.w. dem Zweck, alle Daten auch bei Er- +weiterungen des Systems kompatibel zu aelteren Versionen zu halten. + +Der Aufbau eines solchen Headers ist wie folgt: +2 Bytes Kennung +2 Bytes Laenge +n Bytes Daten + +Aktuell existieren folgende Header: +0 Ende-Kennung, es folgen keine weiteren Header mehr +1 Database Name, es folgen Laenge und C-String + (@database) +2 Name der Default-Node, es folgen Laenge und C-String + (@default) +3 Name der Host-Applikation(en), es folgen Laenge und C-String(s) + (@hostname) +4 Optionen, die von den Default-Einstellungen abweichen, es + folgen Laenge und C-String + (@options, Kommandozeile) +5 Name des/der Autoren, es folgen Laenge und C-String + (@author) +6 Versions-Information, es folgen Laenge und C-String + (@$VER:) +7 Name der Hilfe Seite, es folgen Laenge und C-String + (@help) +8 Beschreibung der Gebiete, in die der Text einzuordnen + ist, es folgen Laenge und C-String + (@subject) +9 HypTree-Header; Aufbau: + 4 Bytes Summe der Laengen aller expliziten Titel + Array von Wortbreiten Bitvektoren: + 1. Wort: Bit n =3D=3D 1 -> Seite n hat einen expliziten Titel + 2. Wort: Bit n =3D=3D 1 -> Seite 16+n hat einen expiziten Titel + usw. +10 Flags fuer den ST-Guide (2 Bytes) + Falls das Bit 10 gesetzt ist, so ist der Hypertext verschluesselt. [= PhD] +11 verwendete Zeilenlaenge (@width) + +Ein Lesealgorithmus fuer diese Header muss alle ihm nicht bekannten Head= er +ohne Warnung oder Fehlermeldung ueberlesen. + + + +Datenbereich eines Hypertextes +------------------------------ +Alle Seiten, Popup's und Bilder, die im Hypertext definiert wurden. +Meist liegen die Daten in gepackter Form vor, so dass sie nicht ohne +weiteres verwendet werden koennen. Der verwendete Pack-Algorithmus +entspricht dem LH5 Verfahren des LHarc, ist somit sehr effizient und +zumindest beim Auspacken auch schnell genug. +Die Reihenfolge der Daten-Objekte entspricht der der Indextabelle, +externe Referenzen, system- und rexx-Eintraege besitzen keine Daten +in diesem Bereich, die Daten gehoeren folglich immer zu einer + * Textseite oder zu einem + * Bild + + +Format einer [p]node +-------------------- +Gehoeren die Daten zu einer Textseite (@node, @pnode), so haben die +(entpackten) Daten folgendes Format: + a) optionaler Grafikbereich (nur @node) + Hier werden alle grafischen Objekte dieser Seite wie + folgt beschrieben: + 1 Byte Kennung (27, ESCAPE) + 1 Byte Typ + 50: Bild (@image) + 51: Linie (@line) + 52: Box (@box) + 53: Box mit runden Ecken (@rbox) + 2 Bytes Index, falls Bild + damit keine 0-Bytes entstehen, liegt dieser Wert zur Basis + 255 vor und zu beiden Bytes wurde der Wert 1 addiert + 1 Byte X-Offset in Zeichen + Bilder: falls X =3D 0 =3D=3D> zentriert [PhD] + 2 Bytes Y-Offset in Zeichen + damit keine 0-Bytes entstehen, liegt dieser Wert zur Basis + 255 vor und zu beiden Bytes wurde der Wert 1 addiert + 1 Byte Breite des Objektes in Zeichen + Bilder: falls Breite =3D 1 =3D=3D> limage [PhD] + 1 Byte Hoehe des Objektes in Zeichen + 1 Byte Data, falls kein Bild + Bevor folgende Aufschluesselung angewendet werden kann muss + zuerst "Data" um eins verkleinert werden! [PhD] + Linie: Bit 0 =3D=3D 1: Pfeilspitze am Anfang + Bit 1 =3D=3D 1: Pfeilspitze am Ende + restliche Bits: Linienstil + Box: + RBox: Fuellmuster + Bei Bildern werden Breite und Hoehe ignoriert, bei Linien bilden + sie das umgrenzende Rechteck. + + b) optional bis zu 12 Querverweis-Datenbloecke + 1 Byte Kennung (27, ESCAPE) + 1 Byte Typ (48) + 1 Byte Laenge (ueber alles) + 2 Bytes Indexnummer der Zielnode (im 255er Format [PhD]) + Text fuer das Popup, Nullterminiert + + c) optional weitere Datenbloecke + 1 Byte Kennung (27, ESCAPE) + 1 Byte Typ (40-47) + 1 Byte Laenge (ueber alles) + Daten + + d) optional Fenstertitel (@node, @title) + 1 Byte Kennung (27, ESCAPE) + 1 Byte Typ (35) + Fenstertitel, Nullterminiert + evtl. Fuellbyte, damit der Text auf einer geraden Adr. + beginnt + + e) optional Tabelle mit Objekten & Seiten (@tree) + 1 Byte Kennung (27, ESCAPE) + 1 Byte Typ (49, ObjTable) + 2 Bytes Zeilennummer in der Zielseite + 2 Bytes Nummer des Baumes + 2 Bytes Objekt in diesem Baum + 2 Bytes Index der Seite + Damit keine 0-Bytes entstehen, liegen alle 2 Byte Werte zur + Basis 255 vor und zu beiden Bytes wurde der Wert 1 addiert; + + f) optional Text mit Attributen + Die einzelnen Zeilen sind durch ein 0-Byte abgeschlossen und + koennen beliebig viele nicht auszugebende Zusatz-Information + enthalten. + + Diese Informations-Sequenzen werden jeweils durch das Zeichen + ESCAPE (27) eingeleitet, ihm folgt ein weiteres ESCAPE oder + ein Typ, im ersten Fall ist das Zeichen ESCAPE auszugeben und + im zweiten Fall bestimmt der Typ das weitere Vorgehen: + 36: Referenz auf andere Seite + @{... link NODE} + 37: wie 36, aber mit Zeilennummer + @{... link NODE LINE} + 38: wie 36 nur durch 'alink' erzeugt + @{... alink NODE} + 39: wie 38, aber mit Zeilennummer + @{... alink NODE LINE} + >=3D 100: Vektor fuer Textattribute: + nach Abzug von 100 ergibt sich folgender + Bitvektor: + 1: Fettschrift + 2: helle Schrift + 4: Kursivschrift + 8: unterstrichen + 16: 'Outlined' + 32: schattierte Schrift + + Bei Typ 37 und 39 folgen 2 Bytes Zeilennummer; damit keine + 0-Bytes entstehen, liegt dieser Wert zur Basis 255 vor und + zu beiden Bytes wurde der Wert 1 addiert + + Bei Typ 36-39 folgen nun + 2 Bytes Index in die Tabelle aus dem Indexbereich; + damit keine 0-Bytes entstehen, liegt dieser Wert zur + Basis 255 vor und zu beiden Bytes wurde der Wert 1 + addiert + 1 Byte Laenge des betreffenden Strings + 32 + ist die Laenge gleich 32, so ist hier direkt der Name + des indizierten Objektes auszugeben, ansonsten so + viele Zeichen, wie die Laenge angibt, minus 32 aus + der nachfolgenden Zeichenkette + + +Format eines Bildes +------------------- +Gehoeren die Daten zu einem Bild, so liegt (nach dem Entpacken) +folgendes Format vor: + a) Header + 2 Bytes Breite des Bildes in Pixeln (wird ignoriert) + 2 Bytes Hoehe des Bildes in Pixeln (wird ignoriert) + 1 Byte Anzahl der Planes (1..8) + 1 Byte 'Planepic': Bit n =3D=3D 1 --> Daten fuer Plane n + vorhanden + 1 Byte 'PlaneOnOff': Bit n =3D=3D 1 --> Plane ganz ausgefuellt + 1 Byte Filler, damit das Bild auf gerader Adr. liegt + b) 1. Plane + optional 2. Plane + ... + optional 8. Plane + + +Format einer REF Datei +---------------------- +Datei-Kennung + 4 Bytes Magic ('HREF') + +Modul-Header + 4 Bytes Laenge des Moduls ohne Header + 4 Bytes Anzahl der Eintraege im aktuellen Modul + +Modul-Daten + 1 Byte Kennung des Eintrages + 0: Dateiname (z.B. 'ST-GUIDE') + immer ohne Pfad + (eintragen eines Pfades ist jedoch erlaubt) + und meist auch ohne Endung + (als Endung wird .HYP verwendet, falls keine angegeben) + 1: Node Name + Seitenname aus dem Hypertext zum letzten Datei-Eintrag + 2: Alias Name + Aliasname aus dem Hypertext zum letzten Node-Eintrag + (wird vom hcp nur optional hier eingetragen) + 3: Label Name + Labelname aus dem Hypertext zum letzten Node-Eintrag + (wird vom hcp nur optional hier eingetragen) + 4: database Name + Database-Argument zum letzten Dateieintrag + 5: Kennung des Betriebsystemes, unter dem der Hypertext + uebersetzt wurde + ('0': unbekannt, '1': AMIGA, '2': ATARI, '3': Macintosh) + + 1 Byte Laenge des Eintrages + n Bytes Eintrag als Nullterminierter String + bei Typ 3 folgen dem String noch 2 Bytes Zeilennummer + +Beliebig viele weitere Modul-Header gefolgt von Modul-Daten. + + 8 Bytes Nullen als Ende-Kennung + [PhD] Diese 8 0-Bytes sind nicht in der Modul-Laenge enthalten! + + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D [PhD]= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D +Ab hier folgen meine eigenen Notizen: + +-Format einer externen Referenz (=3DNode Typ 2 bzw. @{... link FILE [LIN= E]}) + Es gibt keine Daten zum Laden, daher ist im Index die Laenge 0. Saemtli= che + Daten befinden sich im Namen des Index-Eintrags und zwar im folgenden + Format: + / + +-Groessen-Angabe bei Bildern: + Da Bilder groesser als 65KB sein koennen, die Angabe ueber die Laenge d= er + entkomprimierten Daten aber auf 2 Bytes (=3Dbis zu 65536 Bytes an Daten= ) + beschraenkt ist, wird zur Berechnung der waren Groesse der Index-Eintra= g + "next" zu hilfe gezogen: + entkomp. Groesse =3D komp. Groesse + (index->next<<16)+index->comp_di= ff +=20 Index: doc/todo.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/doc/todo.txt,v retrieving revision 1.3 diff -u -r1.3 todo.txt --- doc/todo.txt 18 Apr 2008 20:42:49 -0000 1.3 +++ doc/todo.txt 31 Aug 2009 09:34:21 -0000 @@ -1,81 +1,81 @@ -HypView -=3D=3D=3D=3D=3D=3D=3D --Tabulatorweite fuer Text-Dateien einstellbar - * TABSIZE - enthaelt die gewuenschte Tabulatorweite. Ist diese Variable nicht - vorhanden, so wird der Wert 8 verwendet. (hcp, ST-Guide) - --Zeichensatztabellen fuer Text-Dateien unterstuetzen (ISO Latin, PC, ...= ) - via KeyTab oder so=20 - --Fehlermeldung falls keine weiteren Fenster mehr vorhanden. - -+Window-Cycling selber machen, falls AV-Server das nicht uebernimmt. - --ST-Guide kann bei Verwendung eines Fonts mit kleineren Ausmassen als de= nen=20 - des Standard-Systemfonts, unter bestimmten Umstaenden Texte so plaziere= n,=20 - da Text und Grafik sich nicht ueberschneiden. Angenommen auf einer - Hypertextseite soll zuerst ein Bild und darunter Text erscheinen. - Damit jetzt bei Verwendung von @image plus Leerzeilen - anstelle von - @limage (dieser Befehl setzt ja automatisch Text unter die Grafik) - - der Text unabhaengig von der Hoehe des Fonts immer unterhalb des Bildes - erscheint, benutzt ST-Guide an der Stelle, wo die Grafik erscheint, - Leerzeilen mit der Hoehe des Standard-Systemfonts. - --Intelligenter "Fuller" berarbeiten: die linke obere Ecke des Fensters - sollte nur wenn absolut noetig veraendert (=3Ddas Fenster verschoben) w= erden. - Falls das vergroesserte Fenster platz auf dem Bildschirm hat, bleibt di= e - Ecke unveraendert. - --Anpassen der Fensterbreite und -hoehe (=3DWIN_ADJUST) sollte separat - konfigurierbar sein. - --bei der Selektion sind ein paar Bugs drin. Z.B. auch bei leere Zeilen - fuehren zu Redraw-Fehlern. - --Kontext-Menue mit dem Befehl "Im Text-Editor oeffnen..." erweitern - --nach Veraenderung der ASCII-Konfigurationsdatei ueber einen Editor, d.h= . - direkt nach dem Abspeichern im Editor, diese Datei einzulesen und sofor= t - alle aenderungen in HypView zu uebernehmen. - --Schnellerer Seitenaufbau (z.B. indem man die Text-Ausmasse nur einmal - berechnet!) - --Bug: Hintergrund Farbbilder werden falsch konvertiert mit Imagine VDI - -+"Zurueck" ins Kontext-Men aufnehmen(erledigt). - (evtl. Rechtsklick fuer "Zurueck"-Funktion anstatt Kontext-Men) - --Zurueck via Rechtsklick (wie bei ST-Guide) einbauen. Konfigurierbar! - Rechte Maustaste als Alternative zum Zurueck-Icon, falls die Variable - RIGHTBACK in der ST-GUIDE.INF definiert ist und der Klick dann - geschieht, wenn der Mauszeiger sich gerade im ST-Guide-Fenster befindet= . - Diese Funktion ist von einigen Betriebssystemen gewissermaen nicht voll - "abgesegnet" und daher zunchst nicht aktiviert. Mausfetischisten - moegen aber in der schnellen Ruecksprungmoeglichkeit einen Gewinn sehen= . - Ihnen zuliebe wurde diese Funktion implementiert. - * RIGHTBACK - Falls diese Variable definiert ist (Wert egal), so wird das Bettigen - der rechten Maustaste wie ein Klick auf den 'zurck' Button interpre- - tiert. Defaultmig ist diese Variable nicht gesetzt, weil das a) den - Nachteil hat, da Aktionen im hintenliegenden Fenster nicht mehr - mglich sind, und b) werden Rechtsklicks von den verschiedenen TOS- - Versionen unterschiedlich behandelt (Quelle: Martin "WINX" Osieka) - -- ALT-R - Remarker oeffnen, falls dieser laeuft oder die Variable REMARK= ER - definiert ist - -- SHIFT-CTRL-O - wie CTRL-O, nur mit *.* als Pattern im erscheinenden - Fileselektor - -- Ctrl-F - Pattern suchen (wie Extra -> Suchen) - Bei Auswahl dieser Funktion (auch aktivierbar durch Control - F ) - erscheint ein Dialog, in dem ein Suchbegriff eingegeben werden kann. - Folgende Knoepfe stehen zur Auswahl: - Im Text Als Seite Als REFerenz Abbruch - In allen Seiten ... aller Hypertexte - -- Ctrl-G Pattern erneut suchen (wie Extra -> Weitersuchen) - -- BubbleGEM fuer Icon +HypView +=3D=3D=3D=3D=3D=3D=3D +-Tabulatorweite fuer Text-Dateien einstellbar + * TABSIZE + enthaelt die gewuenschte Tabulatorweite. Ist diese Variable nicht + vorhanden, so wird der Wert 8 verwendet. (hcp, ST-Guide) + +-Zeichensatztabellen fuer Text-Dateien unterstuetzen (ISO Latin, PC, ...= ) + via KeyTab oder so=20 + +-Fehlermeldung falls keine weiteren Fenster mehr vorhanden. + ++Window-Cycling selber machen, falls AV-Server das nicht uebernimmt. + +-ST-Guide kann bei Verwendung eines Fonts mit kleineren Ausmassen als de= nen=20 + des Standard-Systemfonts, unter bestimmten Umstaenden Texte so plaziere= n,=20 + da Text und Grafik sich nicht ueberschneiden. Angenommen auf einer + Hypertextseite soll zuerst ein Bild und darunter Text erscheinen. + Damit jetzt bei Verwendung von @image plus Leerzeilen - anstelle von + @limage (dieser Befehl setzt ja automatisch Text unter die Grafik) - + der Text unabhaengig von der Hoehe des Fonts immer unterhalb des Bildes + erscheint, benutzt ST-Guide an der Stelle, wo die Grafik erscheint, + Leerzeilen mit der Hoehe des Standard-Systemfonts. + +-Intelligenter "Fuller" berarbeiten: die linke obere Ecke des Fensters + sollte nur wenn absolut noetig veraendert (=3Ddas Fenster verschoben) w= erden. + Falls das vergroesserte Fenster platz auf dem Bildschirm hat, bleibt di= e + Ecke unveraendert. + +-Anpassen der Fensterbreite und -hoehe (=3DWIN_ADJUST) sollte separat + konfigurierbar sein. + +-bei der Selektion sind ein paar Bugs drin. Z.B. auch bei leere Zeilen + fuehren zu Redraw-Fehlern. + +-Kontext-Menue mit dem Befehl "Im Text-Editor oeffnen..." erweitern + +-nach Veraenderung der ASCII-Konfigurationsdatei ueber einen Editor, d.h= . + direkt nach dem Abspeichern im Editor, diese Datei einzulesen und sofor= t + alle aenderungen in HypView zu uebernehmen. + +-Schnellerer Seitenaufbau (z.B. indem man die Text-Ausmasse nur einmal + berechnet!) + +-Bug: Hintergrund Farbbilder werden falsch konvertiert mit Imagine VDI + ++"Zurueck" ins Kontext-Men aufnehmen(erledigt). + (evtl. Rechtsklick fuer "Zurueck"-Funktion anstatt Kontext-Men) + +-Zurueck via Rechtsklick (wie bei ST-Guide) einbauen. Konfigurierbar! + Rechte Maustaste als Alternative zum Zurueck-Icon, falls die Variable + RIGHTBACK in der ST-GUIDE.INF definiert ist und der Klick dann + geschieht, wenn der Mauszeiger sich gerade im ST-Guide-Fenster befindet= . + Diese Funktion ist von einigen Betriebssystemen gewissermaen nicht voll + "abgesegnet" und daher zunchst nicht aktiviert. Mausfetischisten + moegen aber in der schnellen Ruecksprungmoeglichkeit einen Gewinn sehen= . + Ihnen zuliebe wurde diese Funktion implementiert. + * RIGHTBACK + Falls diese Variable definiert ist (Wert egal), so wird das Bettigen + der rechten Maustaste wie ein Klick auf den 'zurck' Button interpre- + tiert. Defaultmig ist diese Variable nicht gesetzt, weil das a) den + Nachteil hat, da Aktionen im hintenliegenden Fenster nicht mehr + mglich sind, und b) werden Rechtsklicks von den verschiedenen TOS- + Versionen unterschiedlich behandelt (Quelle: Martin "WINX" Osieka) + +- ALT-R - Remarker oeffnen, falls dieser laeuft oder die Variable REMARK= ER + definiert ist + +- SHIFT-CTRL-O - wie CTRL-O, nur mit *.* als Pattern im erscheinenden + Fileselektor + +- Ctrl-F - Pattern suchen (wie Extra -> Suchen) + Bei Auswahl dieser Funktion (auch aktivierbar durch Control - F ) + erscheint ein Dialog, in dem ein Suchbegriff eingegeben werden kann. + Folgende Knoepfe stehen zur Auswahl: + Im Text Als Seite Als REFerenz Abbruch + In allen Seiten ... aller Hypertexte + +- Ctrl-G Pattern erneut suchen (wie Extra -> Weitersuchen) + +- BubbleGEM fuer Icon Index: dragdrop/dragdrop.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/dragdrop/dragdrop.c,v retrieving revision 1.3 diff -u -r1.3 dragdrop.c --- dragdrop/dragdrop.c 6 Apr 2008 15:47:04 -0000 1.3 +++ dragdrop/dragdrop.c 31 Aug 2009 09:34:21 -0000 @@ -1,270 +1,270 @@ -/* - * $Id: dragdrop.c,v 1.3 2008/04/06 15:47:04 ggs Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -/* - Tabulatorweite: 3 - Kommentare ab: Spalte 60 *Spalte 60* -*/ -#include -#include -#ifdef __GNUC__ - #include - #include - #include -#else - #include -#endif -#include -#include "dragdrop.h" - -/*----------------------------------------------------------------------= ------------------*/=20 -/* Drag & Drop - Pipe ffnen (fuer den Sender) */ -/* Funktionsresultat: Handle der Pipe, -1 fuer Fehler oder -2 fuer Fehle= r bei appl_write */ -/* app_id: ID des Senders (der eigenen Applikation) */ -/* rcvr_id: ID des Empfaengers */ -/* window: Handle des Empaefnger-Fensters */ -/* mx: x-Koordinate der Maus beim Loslassen oder -1 */ -/* my: y-Koordinate der Maus beim Loslassen oder -1 */ -/* kbstate: Status der Kontrolltasten */ -/* format: Feld fuer die max. 8 vom Empfaenger unterstuetzten Format= e */ -/* oldpipesig: Zeiger auf den alten Signal-Dispatcher */ -/*----------------------------------------------------------------------= ------------------*/=20 -short -ddcreate( short app_id, short rcvr_id, short window, short mx, short my,= short kbstate, unsigned long format[8], void **oldpipesig ) -{ - char pipe[24]; - short mbuf[8]; - long handle_mask; - short handle, i; - - strcpy( pipe, "u:\\pipe\\dragdrop.aa" ); - pipe[18] =3D 'a' - 1; - do - { - pipe[18]++; /* letzten Buchstaben weitersetzen */ - if ( pipe[18] > 'z' ) /* kein Buchstabe des Alphabets? */ - { - pipe[17]++; /* ersten Buchstaben der Extension aendern */ - if ( pipe[17] > 'z' ) /* liess sich keine Pipe oeffnen? */ - return( -1 ); - } - - handle =3D (short) Fcreate( pipe, 0x02 ); /* Pipe anlegen, 0x02 bedeu= tet, da EOF zurueckgeliefert wird, */ - /* wenn die Pipe von niemanden zum Lesen geoeffnet wurde */ - } while ( handle =3D=3D EACCES ); - - if ( handle < 0 ) /* liess sich die Pipe nicht anlegen? */ - return( handle ); - - mbuf[0] =3D AP_DRAGDROP; /* Drap&Drop-Message senden */ - mbuf[1] =3D app_id; /* ID der eigenen Applikation */ - mbuf[2] =3D 0; - mbuf[3] =3D window; /* Handle des Fensters */ - mbuf[4] =3D mx; /* x-Koordinate der Maus */ - mbuf[5] =3D my; /* y-Koordinate der Maus */ - mbuf[6] =3D kbstate; /* Tastatur-Status */ - mbuf[7] =3D (((short) pipe[17]) << 8 ) + pipe[18]; /* Endung des Pipe-N= amens */ - - if ( appl_write( rcvr_id, 16, mbuf ) =3D=3D 0 ) /* Fehler bei appl_wri= te()? */ - { - Fclose( handle ); /* Pipe schliessen */ - return( -2 ); - } - - handle_mask =3D 1L << handle; - i =3D (short)Fselect( DD_TIMEOUT, &handle_mask, 0L, 0L ); /* auf Antwor= t warten */ - - if ( i && handle_mask ) /* kein Timeout? */ - { - char reply; - =09 - if ( Fread( handle, 1L, &reply ) =3D=3D 1 ) /* Antwort vom Empfaenger= lesen */ - { - if ( reply =3D=3D DD_OK ) /* alles in Ordnung? */ - { - if ( Fread( handle, DD_EXTSIZE, format ) =3D=3D DD_EXTSIZE ) /* unte= rstuetzte Formate lesen */ - { - *oldpipesig =3D (void *)Psignal( SIGPIPE, (void *) SIG_IGN ); /* Di= spatcher ausklinken */ - return( handle ); - } - } - } - } - - Fclose( handle ); /* Pipe schliessen */ - return( -1 ); -} - - -/*----------------------------------------------------------------------= ------------------*/=20 -/* Drag & Drop - berprfen ob der Empfaenger ein Format akzeptiert = */ -/* Funktionsresultat: DD_OK: Empfnger unterstuetzt das Format *= / -/* DD_EXT: Empfaenger akzeptiert das Format nicht */ -/* DD_LEN: Daten sind zu lang fuer den Empfaenger */ -/* DD_NAK: Fehler bei Kommunikation */ =09 -/* handle: Handle der Pipe */ -/* format: Kruezel fuer das Format */ -/* name: Beschreibung des Formats als C-String */ -/* size: Laenge der zu sendenen Daten */ -/*----------------------------------------------------------------------= ------------------*/=20 -short -ddstry( short handle, unsigned long format, char *name, long size ) -{ - long str_len; - short hdr_len; -=09 - str_len =3D strlen( name ) + 1; /* Laenge des Strings inklusive Nul= lbyte */ - hdr_len =3D 4 + 4 + (short) str_len; /* Laenge des Headers */ - - if ( Fwrite( handle, 2, &hdr_len ) =3D=3D 2 ) /* Laenge des Headers s= enden */ - { - long written; - =09 - written =3D Fwrite( handle, 4, &format ); /* Formatkruezel */ - written +=3D Fwrite( handle, 4, &size ); /* Laenge der zu sendenden = Daten */ - written +=3D Fwrite( handle, str_len, name ); /* Beschreibung des For= mats als C-String */ - - if ( written =3D=3D hdr_len ) /* liess sich der Header schreiben? *= / - { - char reply; - =09 - if ( Fread( handle, 1, &reply ) =3D=3D 1 ) - return( reply ); /* Antwort zurueckliefern */ - } - }=09 - return( DD_NAK ); -} - -/*----------------------------------------------------------------------= ------------------*/=20 -/* Drag & Drop - Pipe schliessen */ -/* handle: Handle der Pipe */ -/* oldpipesig: Zeiger auf den alten Signalhandler */ -/*----------------------------------------------------------------------= ------------------*/=20 -void -ddclose( short handle, void *oldpipesig ) -{ - Psignal( SIGPIPE, oldpipesig ); /* wieder alten Dispatcher eintrage= n */ - Fclose( handle ); /* Pipe schliessen */ -} - -/*----------------------------------------------------------------------= ------------------*/=20 -/* Drag & Drop - Pipe oeffnen (fuer den Empfnger) */ -/* Funktionsresultat: Handle der Pipe oder -1 (Fehler) */ -/* pipe: Zeiger auf den Namen der Pipe ("DRAGDROP.??") */ -/* format: Zeiger auf Array mit unterstuetzten Datenformaten */ -/* oldpipesig: Zeiger auf den Zeiger auf den alten Signalhandler = */ -/*----------------------------------------------------------------------= ------------------*/=20 -short -ddopen( char *pipe, unsigned long format[8], void **oldpipesig ) -{ - short handle; - char reply; - - handle =3D (short) Fopen( pipe, O_RDWR ); /* Handle der Pipe erfrag= en */ - if ( handle < 0 ) - return( -1 ); - - reply =3D DD_OK; /* Programm unterstuetzt Drag & Drop */ - - *oldpipesig =3D (void *)Psignal( SIGPIPE, (void *) SIG_IGN ); /* Signa= l ignorieren */ - - if ( Fwrite( handle, 1, &reply ) =3D=3D 1 ) - { - if ( Fwrite( handle, DD_EXTSIZE, format ) =3D=3D DD_EXTSIZE ) - return( handle ); - } - - ddclose( handle, *oldpipesig ); /* Pipe schliessen */ - return( -1 ); -} - -/*----------------------------------------------------------------------= ------------------*/=20 -/* Header fuer Drag & Drop einlesen */ -/* Funktionsresultat: 0 Fehler 1: alles in Ordnung */ -/* handle: Handle der Pipe */ -/* name: Zeiger auf Array fuer den Datennamen */ -/* format: Zeiger auf ein Long, das das Datenformat anzeigt */ -/* size: Zeiger auf ein Long fuer die Laenge der Daten */ -/*----------------------------------------------------------------------= ------------------*/=20 -short -ddrtry( short handle, char *name, unsigned long *format, long *size ) -{ - short hdr_len; - - if ( Fread( handle, 2, &hdr_len ) =3D=3D 2 ) /* Headerlaenge auslese= n */ - { - if ( hdr_len >=3D 9 ) /* kompletter Header? */ - { - if ( Fread( handle, 4, format ) =3D=3D 4 ) /* Datentyp auslesen */ - { - if ( Fread( handle, 4, size ) =3D=3D 4 ) /* Laenge der Daten in Byt= es auslesen */ - {=09 - short name_len; - =09 - name_len =3D hdr_len -=3D 8; /* Laenge des Namens inklusive Nullby= te */ - - if ( name_len > DD_NAMEMAX ) =09 - name_len =3D DD_NAMEMAX; - - if ( Fread( handle, name_len, name ) =3D=3D name_len ) /* Datenname= n auslesen */ - { - char buf[64]; - =09 - hdr_len -=3D name_len; -=09 - while ( hdr_len > 64 ) /* Headerrest auslesen */ - { - Fread( handle, 64, buf ); - hdr_len -=3D 64; - } - =09 - if ( hdr_len > 0 ) - Fread( handle, hdr_len, buf ); -=09 - return( 1 ); - } - } - } - } - } - return( 0 ); /* Fehler */ -} - -/*----------------------------------------------------------------------= ------------------*/=20 -/* Meldung an den Drag & Drop - Initiator senden */ -/* Funktionsresultat: 0: Fehler 1: alles in Ordnung */ -/* handle: Handle der Pipe */ -/* msg: Nachrichtennummer */ -/*----------------------------------------------------------------------= ------------------*/=20 -short -ddreply( short handle, short msg ) -{ - if ( Fwrite( handle, 1, ((char *) &msg ) + 1 ) !=3D 1 ) /* Fehler? */ - { - Fclose( handle ); /* Pipe schliessen */ - return( 0 ); - } - return( 1 ); -} +/* + * $Id: dragdrop.c,v 1.3 2008/04/06 15:47:04 ggs Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +/* + Tabulatorweite: 3 + Kommentare ab: Spalte 60 *Spalte 60* +*/ +#include +#include +#ifdef __GNUC__ + #include + #include + #include +#else + #include +#endif +#include +#include "dragdrop.h" + +/*----------------------------------------------------------------------= ------------------*/=20 +/* Drag & Drop - Pipe ffnen (fuer den Sender) */ +/* Funktionsresultat: Handle der Pipe, -1 fuer Fehler oder -2 fuer Fehle= r bei appl_write */ +/* app_id: ID des Senders (der eigenen Applikation) */ +/* rcvr_id: ID des Empfaengers */ +/* window: Handle des Empaefnger-Fensters */ +/* mx: x-Koordinate der Maus beim Loslassen oder -1 */ +/* my: y-Koordinate der Maus beim Loslassen oder -1 */ +/* kbstate: Status der Kontrolltasten */ +/* format: Feld fuer die max. 8 vom Empfaenger unterstuetzten Format= e */ +/* oldpipesig: Zeiger auf den alten Signal-Dispatcher */ +/*----------------------------------------------------------------------= ------------------*/=20 +short +ddcreate( short app_id, short rcvr_id, short window, short mx, short my,= short kbstate, unsigned long format[8], void **oldpipesig ) +{ + char pipe[24]; + short mbuf[8]; + long handle_mask; + short handle, i; + + strcpy( pipe, "u:\\pipe\\dragdrop.aa" ); + pipe[18] =3D 'a' - 1; + do + { + pipe[18]++; /* letzten Buchstaben weitersetzen */ + if ( pipe[18] > 'z' ) /* kein Buchstabe des Alphabets? */ + { + pipe[17]++; /* ersten Buchstaben der Extension aendern */ + if ( pipe[17] > 'z' ) /* liess sich keine Pipe oeffnen? */ + return( -1 ); + } + + handle =3D (short) Fcreate( pipe, 0x02 ); /* Pipe anlegen, 0x02 bedeu= tet, da EOF zurueckgeliefert wird, */ + /* wenn die Pipe von niemanden zum Lesen geoeffnet wurde */ + } while ( handle =3D=3D EACCES ); + + if ( handle < 0 ) /* liess sich die Pipe nicht anlegen? */ + return( handle ); + + mbuf[0] =3D AP_DRAGDROP; /* Drap&Drop-Message senden */ + mbuf[1] =3D app_id; /* ID der eigenen Applikation */ + mbuf[2] =3D 0; + mbuf[3] =3D window; /* Handle des Fensters */ + mbuf[4] =3D mx; /* x-Koordinate der Maus */ + mbuf[5] =3D my; /* y-Koordinate der Maus */ + mbuf[6] =3D kbstate; /* Tastatur-Status */ + mbuf[7] =3D (((short) pipe[17]) << 8 ) + pipe[18]; /* Endung des Pipe-N= amens */ + + if ( appl_write( rcvr_id, 16, mbuf ) =3D=3D 0 ) /* Fehler bei appl_wri= te()? */ + { + Fclose( handle ); /* Pipe schliessen */ + return( -2 ); + } + + handle_mask =3D 1L << handle; + i =3D (short)Fselect( DD_TIMEOUT, &handle_mask, 0L, 0L ); /* auf Antwor= t warten */ + + if ( i && handle_mask ) /* kein Timeout? */ + { + char reply; + =09 + if ( Fread( handle, 1L, &reply ) =3D=3D 1 ) /* Antwort vom Empfaenger= lesen */ + { + if ( reply =3D=3D DD_OK ) /* alles in Ordnung? */ + { + if ( Fread( handle, DD_EXTSIZE, format ) =3D=3D DD_EXTSIZE ) /* unte= rstuetzte Formate lesen */ + { + *oldpipesig =3D (void *)Psignal( SIGPIPE, (void *) SIG_IGN ); /* Di= spatcher ausklinken */ + return( handle ); + } + } + } + } + + Fclose( handle ); /* Pipe schliessen */ + return( -1 ); +} + + +/*----------------------------------------------------------------------= ------------------*/=20 +/* Drag & Drop - berprfen ob der Empfaenger ein Format akzeptiert = */ +/* Funktionsresultat: DD_OK: Empfnger unterstuetzt das Format *= / +/* DD_EXT: Empfaenger akzeptiert das Format nicht */ +/* DD_LEN: Daten sind zu lang fuer den Empfaenger */ +/* DD_NAK: Fehler bei Kommunikation */ =09 +/* handle: Handle der Pipe */ +/* format: Kruezel fuer das Format */ +/* name: Beschreibung des Formats als C-String */ +/* size: Laenge der zu sendenen Daten */ +/*----------------------------------------------------------------------= ------------------*/=20 +short +ddstry( short handle, unsigned long format, char *name, long size ) +{ + long str_len; + short hdr_len; +=09 + str_len =3D strlen( name ) + 1; /* Laenge des Strings inklusive Nul= lbyte */ + hdr_len =3D 4 + 4 + (short) str_len; /* Laenge des Headers */ + + if ( Fwrite( handle, 2, &hdr_len ) =3D=3D 2 ) /* Laenge des Headers s= enden */ + { + long written; + =09 + written =3D Fwrite( handle, 4, &format ); /* Formatkruezel */ + written +=3D Fwrite( handle, 4, &size ); /* Laenge der zu sendenden = Daten */ + written +=3D Fwrite( handle, str_len, name ); /* Beschreibung des For= mats als C-String */ + + if ( written =3D=3D hdr_len ) /* liess sich der Header schreiben? *= / + { + char reply; + =09 + if ( Fread( handle, 1, &reply ) =3D=3D 1 ) + return( reply ); /* Antwort zurueckliefern */ + } + }=09 + return( DD_NAK ); +} + +/*----------------------------------------------------------------------= ------------------*/=20 +/* Drag & Drop - Pipe schliessen */ +/* handle: Handle der Pipe */ +/* oldpipesig: Zeiger auf den alten Signalhandler */ +/*----------------------------------------------------------------------= ------------------*/=20 +void +ddclose( short handle, void *oldpipesig ) +{ + Psignal( SIGPIPE, oldpipesig ); /* wieder alten Dispatcher eintrage= n */ + Fclose( handle ); /* Pipe schliessen */ +} + +/*----------------------------------------------------------------------= ------------------*/=20 +/* Drag & Drop - Pipe oeffnen (fuer den Empfnger) */ +/* Funktionsresultat: Handle der Pipe oder -1 (Fehler) */ +/* pipe: Zeiger auf den Namen der Pipe ("DRAGDROP.??") */ +/* format: Zeiger auf Array mit unterstuetzten Datenformaten */ +/* oldpipesig: Zeiger auf den Zeiger auf den alten Signalhandler = */ +/*----------------------------------------------------------------------= ------------------*/=20 +short +ddopen( char *pipe, unsigned long format[8], void **oldpipesig ) +{ + short handle; + char reply; + + handle =3D (short) Fopen( pipe, O_RDWR ); /* Handle der Pipe erfrag= en */ + if ( handle < 0 ) + return( -1 ); + + reply =3D DD_OK; /* Programm unterstuetzt Drag & Drop */ + + *oldpipesig =3D (void *)Psignal( SIGPIPE, (void *) SIG_IGN ); /* Signa= l ignorieren */ + + if ( Fwrite( handle, 1, &reply ) =3D=3D 1 ) + { + if ( Fwrite( handle, DD_EXTSIZE, format ) =3D=3D DD_EXTSIZE ) + return( handle ); + } + + ddclose( handle, *oldpipesig ); /* Pipe schliessen */ + return( -1 ); +} + +/*----------------------------------------------------------------------= ------------------*/=20 +/* Header fuer Drag & Drop einlesen */ +/* Funktionsresultat: 0 Fehler 1: alles in Ordnung */ +/* handle: Handle der Pipe */ +/* name: Zeiger auf Array fuer den Datennamen */ +/* format: Zeiger auf ein Long, das das Datenformat anzeigt */ +/* size: Zeiger auf ein Long fuer die Laenge der Daten */ +/*----------------------------------------------------------------------= ------------------*/=20 +short +ddrtry( short handle, char *name, unsigned long *format, long *size ) +{ + short hdr_len; + + if ( Fread( handle, 2, &hdr_len ) =3D=3D 2 ) /* Headerlaenge auslese= n */ + { + if ( hdr_len >=3D 9 ) /* kompletter Header? */ + { + if ( Fread( handle, 4, format ) =3D=3D 4 ) /* Datentyp auslesen */ + { + if ( Fread( handle, 4, size ) =3D=3D 4 ) /* Laenge der Daten in Byt= es auslesen */ + {=09 + short name_len; + =09 + name_len =3D hdr_len -=3D 8; /* Laenge des Namens inklusive Nullby= te */ + + if ( name_len > DD_NAMEMAX ) =09 + name_len =3D DD_NAMEMAX; + + if ( Fread( handle, name_len, name ) =3D=3D name_len ) /* Datenname= n auslesen */ + { + char buf[64]; + =09 + hdr_len -=3D name_len; +=09 + while ( hdr_len > 64 ) /* Headerrest auslesen */ + { + Fread( handle, 64, buf ); + hdr_len -=3D 64; + } + =09 + if ( hdr_len > 0 ) + Fread( handle, hdr_len, buf ); +=09 + return( 1 ); + } + } + } + } + } + return( 0 ); /* Fehler */ +} + +/*----------------------------------------------------------------------= ------------------*/=20 +/* Meldung an den Drag & Drop - Initiator senden */ +/* Funktionsresultat: 0: Fehler 1: alles in Ordnung */ +/* handle: Handle der Pipe */ +/* msg: Nachrichtennummer */ +/*----------------------------------------------------------------------= ------------------*/=20 +short +ddreply( short handle, short msg ) +{ + if ( Fwrite( handle, 1, ((char *) &msg ) + 1 ) !=3D 1 ) /* Fehler? */ + { + Fclose( handle ); /* Pipe schliessen */ + return( 0 ); + } + return( 1 ); +} Index: dragdrop/dragdrop.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/dragdrop/dragdrop.h,v retrieving revision 1.2 diff -u -r1.2 dragdrop.h --- dragdrop/dragdrop.h 6 Apr 2008 15:47:04 -0000 1.2 +++ dragdrop/dragdrop.h 31 Aug 2009 09:34:21 -0000 @@ -1,60 +1,60 @@ -/* - * $Id: dragdrop.h,v 1.2 2008/04/06 15:47:04 ggs Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -/* - Tabulatorweite: 8 - Kommentare ab: Spalte *Spalte 50* -*/ -#ifndef _DRAGDROP_H_ -#define _DRAGDROP_H_ - -#ifndef AP_DRAGDROP -#define AP_DRAGDROP 63 -#endif - -#define DD_OK 0 -#define DD_NAK 1 -#define DD_EXT 2 -#define DD_LEN 3 - -#define DD_TIMEOUT 4000 /* Timeout in ms */ - -#define DD_NUMEXTS 8 /* Anzahl der Formate */ -#define DD_EXTSIZE 32 /* Laenge des Formatfelds */ - - -#define DD_FNAME "u:\\pipe\\dragdrop.aa" -#define DD_NAMEMAX 128 /* maximale Laenge eines Formatnamens */ -#define DD_HDRMIN 9 /* minmale Laenge des Drag&Drop-Headers */ -#define DD_HDRMAX ( 8 + DD_NAMEMAX ) /* maximale Laenge des Drag&Drop-H= eaders */ - -short ddcreate( short app_id, short rcvr_id, short window, short mx, sho= rt my, short kbstate, unsigned long format[8], void **oldpipesig ); -short ddstry( short handle, unsigned long format, char *name, long size = ); -short ddopen( char *pipe, unsigned long *format, void **oldpipesig ); -void ddclose( short handle, void *oldpipesig ); -short ddrtry( short handle, char *name, unsigned long *format, long *siz= e ); -short ddreply( short handle, short msg ); - -#endif +/* + * $Id: dragdrop.h,v 1.2 2008/04/06 15:47:04 ggs Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +/* + Tabulatorweite: 8 + Kommentare ab: Spalte *Spalte 50* +*/ +#ifndef _DRAGDROP_H_ +#define _DRAGDROP_H_ + +#ifndef AP_DRAGDROP +#define AP_DRAGDROP 63 +#endif + +#define DD_OK 0 +#define DD_NAK 1 +#define DD_EXT 2 +#define DD_LEN 3 + +#define DD_TIMEOUT 4000 /* Timeout in ms */ + +#define DD_NUMEXTS 8 /* Anzahl der Formate */ +#define DD_EXTSIZE 32 /* Laenge des Formatfelds */ + + +#define DD_FNAME "u:\\pipe\\dragdrop.aa" +#define DD_NAMEMAX 128 /* maximale Laenge eines Formatnamens */ +#define DD_HDRMIN 9 /* minmale Laenge des Drag&Drop-Headers */ +#define DD_HDRMAX ( 8 + DD_NAMEMAX ) /* maximale Laenge des Drag&Drop-H= eaders */ + +short ddcreate( short app_id, short rcvr_id, short window, short mx, sho= rt my, short kbstate, unsigned long format[8], void **oldpipesig ); +short ddstry( short handle, unsigned long format, char *name, long size = ); +short ddopen( char *pipe, unsigned long *format, void **oldpipesig ); +void ddclose( short handle, void *oldpipesig ); +short ddrtry( short handle, char *name, unsigned long *format, long *siz= e ); +short ddreply( short handle, short msg ); + +#endif Index: hyp/cache.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/hyp/cache.c,v retrieving revision 1.2 diff -u -r1.2 cache.c --- hyp/cache.c 12 Feb 2006 15:14:57 -0000 1.2 +++ hyp/cache.c 31 Aug 2009 09:34:21 -0000 @@ -1,87 +1,87 @@ -/* - * $Id: cache.c,v 1.2 2006/02/12 15:14:57 pdonze Exp $ - *=20 - * HypView - (c) - 2006 Philipp Donze - * 2006 - Philipp Donze & Odd Skancke - * - * A replacement hypertext viewer - * - * This file is part of HypView. - * - * HypView 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. - * - * HypView is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HypView; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA - */ - -#ifdef __GNUC__ - #include -#else - #include -#endif -#include "../diallib.h" -#include "../hyp.h" - -long GetCacheSize(long num_elements) -{ - return(num_elements*sizeof(INDEX_ENTRY *)); -} - -void InitCache(HYP_DOCUMENT *hyp) -{ - long i; - for(i=3D0;inum_index;i++) - { - hyp->cache[i]=3DNULL; - } -} - -void ClearCache(HYP_DOCUMENT *hyp) -{ - long i; - for(i=3D0;inum_index;i++) - { - if(hyp->cache[i]) - { - Mfree(hyp->cache[i]); - hyp->cache[i]=3DNULL; - } - } -} - -void TellCache(HYP_DOCUMENT *hyp, long node_num,void *node) -{ - hyp->cache[node_num]=3Dnode; -} - -void * -AskCache(HYP_DOCUMENT *hyp, long node_num) -{ - return(hyp->cache[node_num]); -} - - - - -void RemoveNodes(HYP_DOCUMENT *hyp) -{ -long i; - for(i=3D0;inum_index;i++) - { - if(hyp->cache[i] && hyp->indextable[i]->type<=3DPOPUP) - { - Mfree(hyp->cache[i]); - hyp->cache[i]=3DNULL; - } - } -} - +/* + * $Id: cache.c,v 1.2 2006/02/12 15:14:57 pdonze Exp $ + *=20 + * HypView - (c) - 2006 Philipp Donze + * 2006 - Philipp Donze & Odd Skancke + * + * A replacement hypertext viewer + * + * This file is part of HypView. + * + * HypView 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. + * + * HypView is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HypView; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 = USA + */ + +#ifdef __GNUC__ + #include +#else + #include +#endif +#include "../diallib.h" +#include "../hyp.h" + +long GetCacheSize(long num_elements) +{ + return(num_elements*sizeof(INDEX_ENTRY *)); +} + +void InitCache(HYP_DOCUMENT *hyp) +{ + long i; + for(i=3D0;inum_index;i++) + { + hyp->cache[i]=3DNULL; + } +} + +void ClearCache(HYP_DOCUMENT *hyp) +{ + long i; + for(i=3D0;inum_index;i++) + { + if(hyp->cache[i]) + { + Mfree(hyp->cache[i]); + hyp->cache[i]=3DNULL; + } + } +} + +void TellCache(HYP_DOCUMENT *hyp, long node_num,void *node) +{ + hyp->cache[node_num]=3Dnode; +} + +void * +AskCache(HYP_DOCUMENT *hyp, long node_num) +{ + return(hyp->cache[node_num]); +} + + + + +void RemoveNodes(HYP_DOCUMENT *hyp) +{ +long i; + for(i=3D0;inum_index;i++) + { + if(hyp->cache[i] && hyp->indextable[i]->type<=3DPOPUP) + { + Mfree(hyp->cache[i]); + hyp->cache[i]=3DNULL; + } + } +} + Index: include/av.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/include/av.h,v retrieving revision 1.3 diff -u -r1.3 av.h --- include/av.h 7 Apr 2008 18:29:22 -0000 1.3 +++ include/av.h 31 Aug 2009 09:34:22 -0000 @@ -1,462 +1,462 @@ -/* - * Hinweis: - * Dieser Text wurde automatisch aus dem beiliegenden Hypertext - * generiert und enthaelt die fuer Programmierer wichtigen defines - * sowie zu jeder Nachricht eine Kurzbeschreibung zu deren Aufbau - */ - - - -/* - * AV_PROTOKOLL - * msg[3] =3D Bitfeld - * Bit 0: VA_SETSTATUS - * Bit 1: VA_START - * Bit 2: AV_STARTED - * Bit 3: VA_FONTCHANGED - * Bit 4: Quoting - * Bit 5: VA_PATH_UPDATE - * Alle anderen Bits sind fuer Erweiterungen reserviert und - * sollten daher mit 0 vorbesetzt werden. - * msg[4] =3D 0 (reserviert) - * msg[5] =3D 0 (reserviert) - * msg[6/7] =3D Pointer auf den Accessorynamen, wie er bei appl_find ben= utzt - * werden muss; also 8 Zeichen lang und nullterminiert. Wer a= uf - * der sicheren Seite sein will, traegt den Namen komplett in= Gross- - * buchstaben ein. - */ -#define AV_PROTOKOLL 0x4700 - - -/* - * VA_PROTOSTATUS - * msg[3] =3D Bitfeld - * Bit 0 AV_SENDKEY - * Bit 1 AV_ASKFILEFONT - * Bit 2 AV_ASKCONFONT, AV_OPENCONSOLE - * Bit 3 AV_ASKOBJECT - * Bit 4 AV_OPENWIND - * Bit 5 AV_STARTPROG - * Bit 6 AV_ACCWINDOPEN, AV_ACCWINDCLOSED - * Bit 7 AV_STATUS, AV_GETSTATUS - * Bit 8 AV_COPY_DRAGGED - * Bit 9 AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDO= W - * Bit 10 AV_EXIT - * Bit 11 AV_XWIND - * Bit 12 VA_FONTCHANGED - * Bit 13 AV_STARTED - * Bit 14: Versteht und benutzt Quoting von Dateinamen - * Bit 15: AV_FILEINFO, VA_FILECHANGED - * msg[4]: Bit 0: AV_COPYFILE, VA_FILECOPIED - * Bit 1: AV_DELFILE, VA_FILEDELETED - * Bit 2: AV_VIEW, VA_VIEWED - * Bit 3: AV_SETWINDPOS - * Bit 4: erlaubt Anlegen symbolischer Links mit AV_COPY= FILE - * Bit 5: AV_SENDCLICK - * msg[5] =3D 0 (reserviert) - * msg[6/7] =3D Pointer auf den Programmnamen, wie er bei appl_find benu= tzt - * werden muss; also 8 Zeichen lang und nullterminiert. Wer a= uf der - * sicheren Seite sein will, traegt den Namen komplett in Gro= ssbuch- - * staben ein. - */ -#define VA_PROTOSTATUS 0x4701 - - -/* - * AV_GETSTATUS - */ -#define AV_GETSTATUS 0x4703 - - -/* - * AV_STATUS - * msg[3/4] =3D Pointer auf einen String, der keine Steuerzeichen enthal= ten - * darf und nicht laenger als 256 Zeichen sein darf. Dieser - * Pointer darf allerdings NULL sein. - */ -#define AV_STATUS 0x4704 - - -/* - * VA_SETSTATUS - * msg[3/4] =3D Pointer auf einen String, der keine Steuerzeichen enthae= lt. - * Dieser Pointer kann allerdings NULL sein, dann war - * kein Status gespeichert. - */ -#define VA_SETSTATUS 0x4705 - -/* - * AV_SENDCLICK - */ - -#define AV_SENDCLICK 0x4709 - - -/* - * AV_SENDKEY - * msg[3] =3D Tastaturstatus (ev_mmokstate, also SHIFT, CTRL, ALT...) - * msg[4] =3D ASCII/Scancode der gedrueckten Taste (ev_mkreturn) - */ -#define AV_SENDKEY 0x4710 - - -/* - * VA_START - * msg[3/4] =3D Pointer auf eine Kommandozeile, der auch NULL sein kann. - * In der Kommandozeile stehen Pfade oder Dateinamen. - */ -#define VA_START 0x4711 - - -/* - * AV_ASKFILEFONT - */ -#define AV_ASKFILEFONT 0x4712 - - -/* - * VA_FILEFONT - * msg[3] =3D Dateifontnummer (font id) - * msg[4] =3D Dateifontgroesse (in points) - */ -#define VA_FILEFONT 0x4713 - - -/* - * AV_ASKCONFONT - */ -#define AV_ASKCONFONT 0x4714 - - -/* - * VA_CONFONT - * msg[3] =3D Consolefontnummer (font id) - * msg[4] =3D Consolefontgroesse (in points) - */ -#define VA_CONFONT 0x4715 - - -/* - * AV_ASKOBJECT - */ -#define AV_ASKOBJECT 0x4716 - - -/* - * VA_OBJECT - * msg[3/4] =3D Namen aller selektierten Dateien, durch Leerzeichen von- - * einander getrennt. Falls keine Objekte selektiert sind, so - * kann dieser Pointer NULL sein. - */ -#define VA_OBJECT 0x4717 - - -/* - * AV_OPENCONSOLE - */ -#define AV_OPENCONSOLE 0x4718 - - -/* - * VA_CONSOLEOPEN - * msg[3] =3D 0 -> Console wurde nicht geoeffnet - * anderer Wert -> Console ist jetzt offen und liegt vorne - */ -#define VA_CONSOLEOPEN 0x4719 - - -/* - * AV_OPENWIND - * msg[3/4] =3D Pfad fuer das Fenster - * msg[5/6] =3D Wildcard fuer darzustellende Dateien. - */ -#define AV_OPENWIND 0x4720 - - -/* - * VA_WINDOPEN - * msg[3] =3D 0 -> Fenster konnte nicht geoeffnet werden - * anderer Wert -> Fenster ist jetzt offen und liegt vorne - */ -#define VA_WINDOPEN 0x4721 - - -/* - * AV_STARTPROG - * msg[3/4] =3D Programmname mit kompletten Pfad; kann auch eine beliebi= ge - * Datei sein, fuer die der Empfaenger dann die zugehoerige - * Applikation startet - * msg[5/6] =3D Kommandozeile (kann NULL sein) - * msg[7] =3D Beliebiges 16-Bit Wort, das in VA_PROGSTART wieder - * zurueckgeliefert wird. - */ -#define AV_STARTPROG 0x4722 - - -/* - * VA_PROGSTART - * msg[3] =3D 0 -> Programm wure nicht gestartet - * anderer Wert -> Programm wurde gestartet - * msg[4] =3D Returncode des gestarteten Programms (so vorhanden) - * msg[7] =3D 16-Bit Wort aus AV_STARTPROG - */ -#define VA_PROGSTART 0x4723 - - -/* - * AV_ACCWINDOPEN - * msg[3] =3D AES-Handle des geoeffneten Fensters - */ -#define AV_ACCWINDOPEN 0x4724 - - -/* - * VA_DRAGACCWIND - * msg[3] =3D AES-Handle des Fensters - * msg[4] =3D X-Position der Maus - * msg[5] =3D Y-Position der Maus - * msg[6/7] =3D Pointer auf einen String, der die Namen der Objekte enth= aelt. - */ -#define VA_DRAGACCWIND 0x4725 - - -/* - * AV_ACCWINDCLOSED - * msg[3] =3D AES-Handle des Fensters - */ -#define AV_ACCWINDCLOSED 0x4726 - - -/* - * AV_COPY_DRAGGED - * msg[3] =3D Tastaturstatus (Alternate, Control, Shift) - * msg[4/5] =3D Pointer auf einen String, der den Namen des Zielobjektes - * enthaelt. Dies muss ein Pfad sein! - */ -#define AV_COPY_DRAGGED 0x4728 - - -/* - * VA_COPY_COMPLETE - * msg[3] =3D Wenn hier ein Wert ungleich Null steht, dann wurde - * wirklich etwas kopiert oder verschoben. - */ -#define VA_COPY_COMPLETE 0x4729 - - -/* - * AV_PATH_UPDATE - * msg[3/4] =3D Pointer auf den absoluten Pfad - */ -#define AV_PATH_UPDATE 0x4730 - - -/* - * AV_WHAT_IZIT - * msg[3] =3D X-Koordinate - * msg[4] =3D Y-Koordinate - */ -#define AV_WHAT_IZIT 0x4732 - - -/* - * VA_THAT_IZIT - * msg[3] =3D ID der zustaendigen Applikation - * msg[4] =3D Typ des Objektes - * Unbekannt : 0 - * Muelleimer : 1 - * Shredder : 2 - * Clipboard : 3 - * Datei : 4 - * Ordner : 5 - * Laufwerk : 6 - * Fenster : 7 - * Notizblock : 8 - * ? : 9 - * (alle anderen fuer Erweiterungen reserviert.) - * msg[5+6] =3D Zeiger auf den Namen des Objektes (oder NULL, falls nich= t - * vorhanden) - */ -#define VA_THAT_IZIT 0x4733 -#define VA_OB_UNKNOWN 0 -#define VA_OB_TRASHCAN 1 -#define VA_OB_SHREDDER 2 -#define VA_OB_CLIPBOARD 3 -#define VA_OB_FILE 4 -#define VA_OB_FOLDER 5 -#define VA_OB_DRIVE 6 -#define VA_OB_WINDOW 7 -#define VA_OB_NOTEPAD 8 -#define VA_OB_NOTE 9 - - -/* - * AV_DRAG_ON_WINDOW - * msg[3] =3D X-Position, wohin die Maus gezogen wurde - * msg[4] =3D Y-Position, wohin die Maus gezogen wurde - * msg[5] =3D Tastaturstatus (Shift,Control,Alternate) - * msg[6/7] =3D Pointer auf einen String, der die Namen der Objekte enth= aelt. - */ -#define AV_DRAG_ON_WINDOW 0x4734 - - -/* - * VA_DRAG_COMPLETE - * msg[3] =3D Status der Aktion. (!=3D 0 heisst, dass wirklich etwas - * kopiert oder verschoben wurde. - */ -#define VA_DRAG_COMPLETE 0x4735 - - -/* - * AV_EXIT - * msg[3] =3D AES-ID des Senders - */ -#define AV_EXIT 0x4736 - - -/* - * AV_STARTED - * msg[3/4] =3D Der Pointer aus der VA_START Nachricht. - */ -#define AV_STARTED 0x4738 - - -/* - * VA_FONTCHANGED - * msg[3] =3D Dateifontnummer (font id) - * msg[4] =3D Dateifontgroesse (in points) - * msg[5] =3D Consolefontnummer (font id) - * msg[6] =3D Consolefontgroesse (in points) - */ -#define VA_FONTCHANGED 0x4739 - - -/* - * AV_XWIND - * msg[3/4] =3D Pfad fuer das Fenster - * msg[5/6] =3D Wildcard als Filter fuer die Anzeige - * msg[7] =3D Bitmaske 0x0001 - toppe evtl. vorhandenes Fenter - * 0x0002 - Wildcard soll nur selektieren - * - alle anderen Bits auf 0 setzen! - */ -#define AV_XWIND 0x4740 - - -/* - * VA_XOPEN - * msg[3] =3D Gibt an, ob das Fenster geoeffnet werden konnte. - * (Word 3 =3D=3D 0 (nein) !=3D 0 (ja)) - */ -#define VA_XOPEN 0x4741 - - -/* - * AV_VIEW - * msg[3/4]: Zeiger auf den Namen der anzuzeigenden Datei (es ist nur - * EINE einzelne Datei zulaessig!) - * msg[5-7]: reserviert, immer 0 - */ -#define AV_VIEW 0x4751 - - -/* - * VA_VIEWED - * msg[3] : 0=3DFehler, 1=3DAlles ok - * msg[4-7]: reserviert, immer 0 - */ -#define VA_VIEWED 0x4752 - - -/* - * AV_FILEINFO - * msg[3/4]: Zeiger auf Datei oder Ordnernamen. Mehrere Dateien/Ordner - * werden durch Leerzeichen getrennt. Ordner MUeSSEN mit ab- - * schliessendem '\' uebergeben werden! - * msg[5-7]: reserviert, immer 0 - */ -#define AV_FILEINFO 0x4753 - - -/* - * VA_FILECHANGED - * msg[3/4]: Zeiger auf die Namen der Dateien/Ordner, die bei - * AV_FILEINFO uebergeben wurden, wobei natuerlich einige - * Dateien/Ordner neue Namen haben koennen - * Beispiel: Es wurde 'C:\ANNA.TXT C:\AUTO\' uebergeben. - * Der Benutzer aendert 'ANNA.TXT' in 'ANNELIE.TXT' - * um. Als Ergebnis erhaelt man dann in dieser - * Message den String 'C:\ANNELIE.TXT C:\AUTO\' - * msg[5-7]: reserviert, immer 0 - */ -#define VA_FILECHANGED 0x4754 - - -/* - * AV_COPYFILE - * msg[3/4]: Zeiger auf die Quelldateie(n) und -Ordner, durch Leer- - * stellen getrennt, Order mit abschliessendem '\' - * msg[5/6]: Zeiger auf den Zielordner - * msg[7] : Bit 0: Originale loeschen (verschieben) - * Bit 1: Kopien umbenennen - * Bit 2: Ziel kommentarlos ueberschreiben - * Bit 3: Nur symbolische Links der Quellen erzeugen - * (Bit 0 ist dann bedeutungslos) - * Bit 3-15: reserviert, immer 0 - */ -#define AV_COPYFILE 0x4755 - - -/* - * VA_FILECOPIED - * msg[3] : 0=3DFehler, 1=3DAlles Ok - * msg[4-7]: reserviert, immer 0 - */ -#define VA_FILECOPIED 0x4756 - - -/* - * AV_DELFILE - * msg[3/4]: Zeiger auf die zu loeschenden Dateie(n)/Ordner, durch Leer- - * stellen getrennt, Order mit abschliessendem '\' - * msg[5-7]: reserviert, immer 0 - */ -#define AV_DELFILE 0x4757 - - -/* - * VA_FILEDELETED - * msg[3] : 0=3DFehler, 1=3DAlles Ok - * msg[4-7]: reserviert, immer 0 - */ -#define VA_FILEDELETED 0x4758 - - -/* - * AV_SETWINDPOS - * msg[3]: Position X - * msg[4]: Position Y - * msg[5]: Breite - * msg[6]: Hoehe - * msg[7]: reserviert, immer 0 - */ -#define AV_SETWINDPOS 0x4759 - - -/* - * VA_PATH_UPDATE - * msg[3/4]: Zeiger auf das Verzeichnis, immer mit '\' abgeschlossen - * msg[5-7]: reserviert, immer 0 - */ -#define VA_PATH_UPDATE 0x4760 - - -/* - * AV_SENDKLICK - * msg[3]: ev_mmox - * msg[4]: ev_mmoy - * msg[5]: ev_mmobutton - * msg[6]: ev_mmokstate - * msg[7]: ev_mbreturn - */ -#define AV_SENDCLICK 0x4709 +/* + * Hinweis: + * Dieser Text wurde automatisch aus dem beiliegenden Hypertext + * generiert und enthaelt die fuer Programmierer wichtigen defines + * sowie zu jeder Nachricht eine Kurzbeschreibung zu deren Aufbau + */ + + + +/* + * AV_PROTOKOLL + * msg[3] =3D Bitfeld + * Bit 0: VA_SETSTATUS + * Bit 1: VA_START + * Bit 2: AV_STARTED + * Bit 3: VA_FONTCHANGED + * Bit 4: Quoting + * Bit 5: VA_PATH_UPDATE + * Alle anderen Bits sind fuer Erweiterungen reserviert und + * sollten daher mit 0 vorbesetzt werden. + * msg[4] =3D 0 (reserviert) + * msg[5] =3D 0 (reserviert) + * msg[6/7] =3D Pointer auf den Accessorynamen, wie er bei appl_find ben= utzt + * werden muss; also 8 Zeichen lang und nullterminiert. Wer a= uf + * der sicheren Seite sein will, traegt den Namen komplett in= Gross- + * buchstaben ein. + */ +#define AV_PROTOKOLL 0x4700 + + +/* + * VA_PROTOSTATUS + * msg[3] =3D Bitfeld + * Bit 0 AV_SENDKEY + * Bit 1 AV_ASKFILEFONT + * Bit 2 AV_ASKCONFONT, AV_OPENCONSOLE + * Bit 3 AV_ASKOBJECT + * Bit 4 AV_OPENWIND + * Bit 5 AV_STARTPROG + * Bit 6 AV_ACCWINDOPEN, AV_ACCWINDCLOSED + * Bit 7 AV_STATUS, AV_GETSTATUS + * Bit 8 AV_COPY_DRAGGED + * Bit 9 AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDO= W + * Bit 10 AV_EXIT + * Bit 11 AV_XWIND + * Bit 12 VA_FONTCHANGED + * Bit 13 AV_STARTED + * Bit 14: Versteht und benutzt Quoting von Dateinamen + * Bit 15: AV_FILEINFO, VA_FILECHANGED + * msg[4]: Bit 0: AV_COPYFILE, VA_FILECOPIED + * Bit 1: AV_DELFILE, VA_FILEDELETED + * Bit 2: AV_VIEW, VA_VIEWED + * Bit 3: AV_SETWINDPOS + * Bit 4: erlaubt Anlegen symbolischer Links mit AV_COPY= FILE + * Bit 5: AV_SENDCLICK + * msg[5] =3D 0 (reserviert) + * msg[6/7] =3D Pointer auf den Programmnamen, wie er bei appl_find benu= tzt + * werden muss; also 8 Zeichen lang und nullterminiert. Wer a= uf der + * sicheren Seite sein will, traegt den Namen komplett in Gro= ssbuch- + * staben ein. + */ +#define VA_PROTOSTATUS 0x4701 + + +/* + * AV_GETSTATUS + */ +#define AV_GETSTATUS 0x4703 + + +/* + * AV_STATUS + * msg[3/4] =3D Pointer auf einen String, der keine Steuerzeichen enthal= ten + * darf und nicht laenger als 256 Zeichen sein darf. Dieser + * Pointer darf allerdings NULL sein. + */ +#define AV_STATUS 0x4704 + + +/* + * VA_SETSTATUS + * msg[3/4] =3D Pointer auf einen String, der keine Steuerzeichen enthae= lt. + * Dieser Pointer kann allerdings NULL sein, dann war + * kein Status gespeichert. + */ +#define VA_SETSTATUS 0x4705 + +/* + * AV_SENDCLICK + */ + +#define AV_SENDCLICK 0x4709 + + +/* + * AV_SENDKEY + * msg[3] =3D Tastaturstatus (ev_mmokstate, also SHIFT, CTRL, ALT...) + * msg[4] =3D ASCII/Scancode der gedrueckten Taste (ev_mkreturn) + */ +#define AV_SENDKEY 0x4710 + + +/* + * VA_START + * msg[3/4] =3D Pointer auf eine Kommandozeile, der auch NULL sein kann. + * In der Kommandozeile stehen Pfade oder Dateinamen. + */ +#define VA_START 0x4711 + + +/* + * AV_ASKFILEFONT + */ +#define AV_ASKFILEFONT 0x4712 + + +/* + * VA_FILEFONT + * msg[3] =3D Dateifontnummer (font id) + * msg[4] =3D Dateifontgroesse (in points) + */ +#define VA_FILEFONT 0x4713 + + +/* + * AV_ASKCONFONT + */ +#define AV_ASKCONFONT 0x4714 + + +/* + * VA_CONFONT + * msg[3] =3D Consolefontnummer (font id) + * msg[4] =3D Consolefontgroesse (in points) + */ +#define VA_CONFONT 0x4715 + + +/* + * AV_ASKOBJECT + */ +#define AV_ASKOBJECT 0x4716 + + +/* + * VA_OBJECT + * msg[3/4] =3D Namen aller selektierten Dateien, durch Leerzeichen von- + * einander getrennt. Falls keine Objekte selektiert sind, so + * kann dieser Pointer NULL sein. + */ +#define VA_OBJECT 0x4717 + + +/* + * AV_OPENCONSOLE + */ +#define AV_OPENCONSOLE 0x4718 + + +/* + * VA_CONSOLEOPEN + * msg[3] =3D 0 -> Console wurde nicht geoeffnet + * anderer Wert -> Console ist jetzt offen und liegt vorne + */ +#define VA_CONSOLEOPEN 0x4719 + + +/* + * AV_OPENWIND + * msg[3/4] =3D Pfad fuer das Fenster + * msg[5/6] =3D Wildcard fuer darzustellende Dateien. + */ +#define AV_OPENWIND 0x4720 + + +/* + * VA_WINDOPEN + * msg[3] =3D 0 -> Fenster konnte nicht geoeffnet werden + * anderer Wert -> Fenster ist jetzt offen und liegt vorne + */ +#define VA_WINDOPEN 0x4721 + + +/* + * AV_STARTPROG + * msg[3/4] =3D Programmname mit kompletten Pfad; kann auch eine beliebi= ge + * Datei sein, fuer die der Empfaenger dann die zugehoerige + * Applikation startet + * msg[5/6] =3D Kommandozeile (kann NULL sein) + * msg[7] =3D Beliebiges 16-Bit Wort, das in VA_PROGSTART wieder + * zurueckgeliefert wird. + */ +#define AV_STARTPROG 0x4722 + + +/* + * VA_PROGSTART + * msg[3] =3D 0 -> Programm wure nicht gestartet + * anderer Wert -> Programm wurde gestartet + * msg[4] =3D Returncode des gestarteten Programms (so vorhanden) + * msg[7] =3D 16-Bit Wort aus AV_STARTPROG + */ +#define VA_PROGSTART 0x4723 + + +/* + * AV_ACCWINDOPEN + * msg[3] =3D AES-Handle des geoeffneten Fensters + */ +#define AV_ACCWINDOPEN 0x4724 + + +/* + * VA_DRAGACCWIND + * msg[3] =3D AES-Handle des Fensters + * msg[4] =3D X-Position der Maus + * msg[5] =3D Y-Position der Maus + * msg[6/7] =3D Pointer auf einen String, der die Namen der Objekte enth= aelt. + */ +#define VA_DRAGACCWIND 0x4725 + + +/* + * AV_ACCWINDCLOSED + * msg[3] =3D AES-Handle des Fensters + */ +#define AV_ACCWINDCLOSED 0x4726 + + +/* + * AV_COPY_DRAGGED + * msg[3] =3D Tastaturstatus (Alternate, Control, Shift) + * msg[4/5] =3D Pointer auf einen String, der den Namen des Zielobjektes + * enthaelt. Dies muss ein Pfad sein! + */ +#define AV_COPY_DRAGGED 0x4728 + + +/* + * VA_COPY_COMPLETE + * msg[3] =3D Wenn hier ein Wert ungleich Null steht, dann wurde + * wirklich etwas kopiert oder verschoben. + */ +#define VA_COPY_COMPLETE 0x4729 + + +/* + * AV_PATH_UPDATE + * msg[3/4] =3D Pointer auf den absoluten Pfad + */ +#define AV_PATH_UPDATE 0x4730 + + +/* + * AV_WHAT_IZIT + * msg[3] =3D X-Koordinate + * msg[4] =3D Y-Koordinate + */ +#define AV_WHAT_IZIT 0x4732 + + +/* + * VA_THAT_IZIT + * msg[3] =3D ID der zustaendigen Applikation + * msg[4] =3D Typ des Objektes + * Unbekannt : 0 + * Muelleimer : 1 + * Shredder : 2 + * Clipboard : 3 + * Datei : 4 + * Ordner : 5 + * Laufwerk : 6 + * Fenster : 7 + * Notizblock : 8 + * ? : 9 + * (alle anderen fuer Erweiterungen reserviert.) + * msg[5+6] =3D Zeiger auf den Namen des Objektes (oder NULL, falls nich= t + * vorhanden) + */ +#define VA_THAT_IZIT 0x4733 +#define VA_OB_UNKNOWN 0 +#define VA_OB_TRASHCAN 1 +#define VA_OB_SHREDDER 2 +#define VA_OB_CLIPBOARD 3 +#define VA_OB_FILE 4 +#define VA_OB_FOLDER 5 +#define VA_OB_DRIVE 6 +#define VA_OB_WINDOW 7 +#define VA_OB_NOTEPAD 8 +#define VA_OB_NOTE 9 + + +/* + * AV_DRAG_ON_WINDOW + * msg[3] =3D X-Position, wohin die Maus gezogen wurde + * msg[4] =3D Y-Position, wohin die Maus gezogen wurde + * msg[5] =3D Tastaturstatus (Shift,Control,Alternate) + * msg[6/7] =3D Pointer auf einen String, der die Namen der Objekte enth= aelt. + */ +#define AV_DRAG_ON_WINDOW 0x4734 + + +/* + * VA_DRAG_COMPLETE + * msg[3] =3D Status der Aktion. (!=3D 0 heisst, dass wirklich etwas + * kopiert oder verschoben wurde. + */ +#define VA_DRAG_COMPLETE 0x4735 + + +/* + * AV_EXIT + * msg[3] =3D AES-ID des Senders + */ +#define AV_EXIT 0x4736 + + +/* + * AV_STARTED + * msg[3/4] =3D Der Pointer aus der VA_START Nachricht. + */ +#define AV_STARTED 0x4738 + + +/* + * VA_FONTCHANGED + * msg[3] =3D Dateifontnummer (font id) + * msg[4] =3D Dateifontgroesse (in points) + * msg[5] =3D Consolefontnummer (font id) + * msg[6] =3D Consolefontgroesse (in points) + */ +#define VA_FONTCHANGED 0x4739 + + +/* + * AV_XWIND + * msg[3/4] =3D Pfad fuer das Fenster + * msg[5/6] =3D Wildcard als Filter fuer die Anzeige + * msg[7] =3D Bitmaske 0x0001 - toppe evtl. vorhandenes Fenter + * 0x0002 - Wildcard soll nur selektieren + * - alle anderen Bits auf 0 setzen! + */ +#define AV_XWIND 0x4740 + + +/* + * VA_XOPEN + * msg[3] =3D Gibt an, ob das Fenster geoeffnet werden konnte. + * (Word 3 =3D=3D 0 (nein) !=3D 0 (ja)) + */ +#define VA_XOPEN 0x4741 + + +/* + * AV_VIEW + * msg[3/4]: Zeiger auf den Namen der anzuzeigenden Datei (es ist nur + * EINE einzelne Datei zulaessig!) + * msg[5-7]: reserviert, immer 0 + */ +#define AV_VIEW 0x4751 + + +/* + * VA_VIEWED + * msg[3] : 0=3DFehler, 1=3DAlles ok + * msg[4-7]: reserviert, immer 0 + */ +#define VA_VIEWED 0x4752 + + +/* + * AV_FILEINFO + * msg[3/4]: Zeiger auf Datei oder Ordnernamen. Mehrere Dateien/Ordner + * werden durch Leerzeichen getrennt. Ordner MUeSSEN mit ab- + * schliessendem '\' uebergeben werden! + * msg[5-7]: reserviert, immer 0 + */ +#define AV_FILEINFO 0x4753 + + +/* + * VA_FILECHANGED + * msg[3/4]: Zeiger auf die Namen der Dateien/Ordner, die bei + * AV_FILEINFO uebergeben wurden, wobei natuerlich einige + * Dateien/Ordner neue Namen haben koennen + * Beispiel: Es wurde 'C:\ANNA.TXT C:\AUTO\' uebergeben. + * Der Benutzer aendert 'ANNA.TXT' in 'ANNELIE.TXT' + * um. Als Ergebnis erhaelt man dann in dieser + * Message den String 'C:\ANNELIE.TXT C:\AUTO\' + * msg[5-7]: reserviert, immer 0 + */ +#define VA_FILECHANGED 0x4754 + + +/* + * AV_COPYFILE + * msg[3/4]: Zeiger auf die Quelldateie(n) und -Ordner, durch Leer- + * stellen getrennt, Order mit abschliessendem '\' + * msg[5/6]: Zeiger auf den Zielordner + * msg[7] : Bit 0: Originale loeschen (verschieben) + * Bit 1: Kopien umbenennen + * Bit 2: Ziel kommentarlos ueberschreiben + * Bit 3: Nur symbolische Links der Quellen erzeugen + * (Bit 0 ist dann bedeutungslos) + * Bit 3-15: reserviert, immer 0 + */ +#define AV_COPYFILE 0x4755 + + +/* + * VA_FILECOPIED + * msg[3] : 0=3DFehler, 1=3DAlles Ok + * msg[4-7]: reserviert, immer 0 + */ +#define VA_FILECOPIED 0x4756 + + +/* + * AV_DELFILE + * msg[3/4]: Zeiger auf die zu loeschenden Dateie(n)/Ordner, durch Leer- + * stellen getrennt, Order mit abschliessendem '\' + * msg[5-7]: reserviert, immer 0 + */ +#define AV_DELFILE 0x4757 + + +/* + * VA_FILEDELETED + * msg[3] : 0=3DFehler, 1=3DAlles Ok + * msg[4-7]: reserviert, immer 0 + */ +#define VA_FILEDELETED 0x4758 + + +/* + * AV_SETWINDPOS + * msg[3]: Position X + * msg[4]: Position Y + * msg[5]: Breite + * msg[6]: Hoehe + * msg[7]: reserviert, immer 0 + */ +#define AV_SETWINDPOS 0x4759 + + +/* + * VA_PATH_UPDATE + * msg[3/4]: Zeiger auf das Verzeichnis, immer mit '\' abgeschlossen + * msg[5-7]: reserviert, immer 0 + */ +#define VA_PATH_UPDATE 0x4760 + + +/* + * AV_SENDKLICK + * msg[3]: ev_mmox + * msg[4]: ev_mmoy + * msg[5]: ev_mmobutton + * msg[6]: ev_mmokstate + * msg[7]: ev_mbreturn + */ +#define AV_SENDCLICK 0x4709 Index: include/dhst.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/include/dhst.h,v retrieving revision 1.1 diff -u -r1.1 dhst.h --- include/dhst.h 10 Feb 2006 11:33:35 -0000 1.1 +++ include/dhst.h 31 Aug 2009 09:34:22 -0000 @@ -1,32 +1,32 @@ -typedef struct -{ - char *appname; /* The name of the application (e.g. "Texel") */ - char *apppath; /* The absolute path of the application (e.g. "c:\prog= ram\texel.app") */ - char *docname; /* The name of the document (e.g. "balmer.txl") */ - char *docpath; /* The absolute path of the document (e.B. "d:\data\bal= mer.txl") */ -}DHSTINFO; - -/* - The application then sends the DHST-Server the following message: - msg[0] DHST_ADD - msg[1] ap_id - msg[2] 0 - msg[3]+msg[4] Pointer to the DHSTINFO-structure - msg[5] 0 - msg[6] 0 - msg[7] 0 -*/ -#define DHST_ADD 0xdadd - -/* - As response you'll get: - msg[0] DHST_ACK - msg[1] ap_id - msg[2] 0 - msg[3]+msg[4] Pointer to DHSTINFO-structure - (As passed with DHST_ADD) - msg[5] 0 - msg[6] 0 - msg[7] 0=3Derror(s), else: OK -*/ -#define DHST_ACK 0xdade +typedef struct +{ + char *appname; /* The name of the application (e.g. "Texel") */ + char *apppath; /* The absolute path of the application (e.g. "c:\prog= ram\texel.app") */ + char *docname; /* The name of the document (e.g. "balmer.txl") */ + char *docpath; /* The absolute path of the document (e.B. "d:\data\bal= mer.txl") */ +}DHSTINFO; + +/* + The application then sends the DHST-Server the following message: + msg[0] DHST_ADD + msg[1] ap_id + msg[2] 0 + msg[3]+msg[4] Pointer to the DHSTINFO-structure + msg[5] 0 + msg[6] 0 + msg[7] 0 +*/ +#define DHST_ADD 0xdadd + +/* + As response you'll get: + msg[0] DHST_ACK + msg[1] ap_id + msg[2] 0 + msg[3]+msg[4] Pointer to DHSTINFO-structure + (As passed with DHST_ADD) + msg[5] 0 + msg[6] 0 + msg[7] 0=3Derror(s), else: OK +*/ +#define DHST_ACK 0xdade Index: include/scancode.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/include/scancode.h,v retrieving revision 1.2 diff -u -r1.2 scancode.h --- include/scancode.h 6 Apr 2008 15:47:04 -0000 1.2 +++ include/scancode.h 31 Aug 2009 09:34:22 -0000 @@ -1,65 +1,65 @@ -/* - * Eine Sammlung wichtiger Scancodes fuer Ataris - * Philipp Donz 11.08.2000 - */ -#ifndef __SCANCODES__ -#define __SCANCODES__ 1 - -/* Bits zu Kennzeichnung der Zusatztasten */ -#define KbNUM 0x10 /* Zahlenblock */ -#define KbALT 0x08 -#define KbCTRL 0x04 -#define KbSHIFT 0x03 -#define KbLSHIFT 0x02 -#define KbRSHIFT 0x01 - -/* selten vorhandene Tasten */ -#define KbISO 0x37 -#define KbPAGEUP 0x49 -#define KbPAGEDOWN 0x51 -#define KbEND 0x4F - -/* Funktionstasten */ -#define KbF1 0x3b -#define KbF2 0x3c -#define KbF3 0x3d -#define KbF4 0x3e -#define KbF5 0x3f -#define KbF6 0x40 -#define KbF7 0x41 -#define KbF8 0x42 -#define KbF9 0x43 -#define KbF10 0x44 -/* Shift+Funktionstasten */ -#define KbF11 0x54 -#define KbF12 0x55 -#define KbF13 0x56 -#define KbF14 0x57 -#define KbF15 0x58 -#define KbF16 0x59 -#define KbF17 0x5a -#define KbF18 0x5b -#define KbF19 0x5c -#define KbF20 0x5d -/* Cursor-Bereich */ -#define KbUNDO 0x61 -#define KbHELP 0x62 -#define KbINSERT 0x52 -#define KbHOME 0x47 -#define KbUP 0x48 -#define KbDOWN 0x50 -#define KbLEFT 0x4b -#define KbRIGHT 0x4d -/* Alternate-numerische Tasten */ -#define KbAlt1 0x78 -#define KbAlt2 0x79 -#define KbAlt3 0x7a -#define KbAlt4 0x7b -#define KbAlt5 0x7c -#define KbAlt6 0x7d -#define KbAlt7 0x7e -#define KbAlt8 0x7f -#define KbAlt9 0x80 -#define KbAlt0 0x81 - +/* + * Eine Sammlung wichtiger Scancodes fuer Ataris + * Philipp Donz 11.08.2000 + */ +#ifndef __SCANCODES__ +#define __SCANCODES__ 1 + +/* Bits zu Kennzeichnung der Zusatztasten */ +#define KbNUM 0x10 /* Zahlenblock */ +#define KbALT 0x08 +#define KbCTRL 0x04 +#define KbSHIFT 0x03 +#define KbLSHIFT 0x02 +#define KbRSHIFT 0x01 + +/* selten vorhandene Tasten */ +#define KbISO 0x37 +#define KbPAGEUP 0x49 +#define KbPAGEDOWN 0x51 +#define KbEND 0x4F + +/* Funktionstasten */ +#define KbF1 0x3b +#define KbF2 0x3c +#define KbF3 0x3d +#define KbF4 0x3e +#define KbF5 0x3f +#define KbF6 0x40 +#define KbF7 0x41 +#define KbF8 0x42 +#define KbF9 0x43 +#define KbF10 0x44 +/* Shift+Funktionstasten */ +#define KbF11 0x54 +#define KbF12 0x55 +#define KbF13 0x56 +#define KbF14 0x57 +#define KbF15 0x58 +#define KbF16 0x59 +#define KbF17 0x5a +#define KbF18 0x5b +#define KbF19 0x5c +#define KbF20 0x5d +/* Cursor-Bereich */ +#define KbUNDO 0x61 +#define KbHELP 0x62 +#define KbINSERT 0x52 +#define KbHOME 0x47 +#define KbUP 0x48 +#define KbDOWN 0x50 +#define KbLEFT 0x4b +#define KbRIGHT 0x4d +/* Alternate-numerische Tasten */ +#define KbAlt1 0x78 +#define KbAlt2 0x79 +#define KbAlt3 0x7a +#define KbAlt4 0x7b +#define KbAlt5 0x7c +#define KbAlt6 0x7d +#define KbAlt7 0x7e +#define KbAlt8 0x7f +#define KbAlt9 0x80 +#define KbAlt0 0x81 + #endif \ No newline at end of file Index: skins/liesmich.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /mint/freemint/tools/hypview/skins/liesmich.txt,v retrieving revision 1.1 diff -u -r1.1 liesmich.txt --- skins/liesmich.txt 10 Feb 2006 11:33:36 -0000 1.1 +++ skins/liesmich.txt 31 Aug 2009 09:34:22 -0000 @@ -1,13 +1,13 @@ -"Skins" f=81r HypView (ab V0.28) -von Gunnar Gr=94bel (http://www.ppp-software.de) - -Installation -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -Gesamtes Verzeichnis "Skins" (inkl. SKIN_xx.RSC) in das Verzeichnis von -HypView kopieren. -Mit einem Editor (qed, luna,...) in der Konfigurations-Datei HYP_VIEW.CF= G -eine Zeile SKIN=3D... suchen bzw. einf=81gen. Diese Zeile w=84hlt die=20 -entsprechende Resource-Datei aus.Z.B. - SKIN=3DSKIN_05.RSC -veranlasst HypView die Datei SKIN_05.RSC aus dem Verzeichnis "Skins" -zu laden. +"Skins" f=81r HypView (ab V0.28) +von Gunnar Gr=94bel (http://www.ppp-software.de) + +Installation +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +Gesamtes Verzeichnis "Skins" (inkl. SKIN_xx.RSC) in das Verzeichnis von +HypView kopieren. +Mit einem Editor (qed, luna,...) in der Konfigurations-Datei HYP_VIEW.CF= G +eine Zeile SKIN=3D... suchen bzw. einf=81gen. Diese Zeile w=84hlt die=20 +entsprechende Resource-Datei aus.Z.B. + SKIN=3DSKIN_05.RSC +veranlasst HypView die Datei SKIN_05.RSC aus dem Verzeichnis "Skins" +zu laden. --=-s/Z4kB+0KeDd2DVPFF4k--