kruton / tinyfugue Goto Github PK
View Code? Open in Web Editor NEWTinyfugue MUD client (tf) with UTF-8 patches for Unicode MUDs.
Home Page: http://tinyfugue.sourceforge.net/
License: Other
Tinyfugue MUD client (tf) with UTF-8 patches for Unicode MUDs.
Home Page: http://tinyfugue.sourceforge.net/
License: Other
Unicode notes: "Release" is the branch you want. On Debian or Ubuntu, make sure you apt-get libicu-dev before running ./configure. There is a known and easily triggered bug: The backspace, delete, and arrow keys move by bytes, not by characters. For now, editing a line with multibyte characters will send XML hexadecimal escape codes if unencodeable bytes are in the input box. I will gladly accept pull requests. Setting your terminal to send ^H instead of ^? for backspace mitigates some, but not all of the backspace issues. For servers that don't negotiate charsets, /set default_charset=NAME before defining a world with /addworld or /test addworld(). I recommend putting /set default_charset=Latin-1 at the top of your worlds.tf. ====== TinyFugue is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003, 2004, 2005, 2006-2007 Ken Keys. ======= This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 this program; if not, write to the Free Software 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ======= INSTALLING TINYFUGUE TinyFugue can be installed and run on UNIX-like systems, Mac OS X, and Win32. For instructions, see the README file in the appropriate directory. For information on unofficial versions of TF for other operating systems, see the TF web page at http://tinyfugue.sourceforge.net/. "Make" options -------------- Options are not available on all systems. To use an option, give it as an argument to the installation program (e.g., "make clean"). all Compile, but do not install (the "install" option should be run later to install the files). install Compile (if you haven't already) and install. The default installation locations depend on the operating system. clean Remove object files and other junk from source directory. uninstall Remove tf executable, help files, and library from their installed locations. Public Installation ------------------- Some features of TF can be disabled for secure public installation, by using one of these /restrict commands in %{TFLIBDIR}/local.tf: /restrict SHELL Prevents all access to shell or external commands. Disables TF builtins "/sh" and "/quote !", and uncompression during /load and /help. /restrict FILE Prevents reading and writing of files. Disables TF builtins "/load", "/save", "/saveworld", "/log", and "/quote '", and sockmload feature. Implies /restrict shell. /restrict WORLD Prevents the user from defining new worlds and connecting to undefined worlds. TF builtins /addworld and the "/world <host> <port>" semantics are disabled. Implies /restrict file. Terminal Handling ----------------- If the default terminal handling option does not work, tf can be configured to use vt100 codes or nothing at all. See the README file in the subdirectory corresponding to your operating system. Compression ----------- If you are short on disk space, you can compress the helpfile and library files (except stdlib.tf). Make sure the COMPRESS_SUFFIX and COMPRESS_READ macros are set correctly; set them in the %{TFLIBDIR}/local.tf file if needed. Note that compresion can not be used if /restrict is used. Firewalls --------- TF can be made to connect through a generic proxy server by setting the %proxy_host variable at runtime. See "/help proxy". Also see the README file in the subdirectory corresponding to your operating system to see if tf has transparent firewall support on your system. Last Resort ----------- If you have an installation problem or other system-specific problem that is not described in this README or the README in the subdirectory for your system, contact the person who supports TF on your system. If you have a problem that is not system-related, ask for support on http://tinyfugue.sourceforge.net/ or contact the author by email at [email protected]. Please provide the following information: The version of TF (type "/version" in tf). The operating system version (on unix, type "uname -a" in the shell). If tf won't compile, send the output of configure and make (in plaintext form, please). If you have a bug or core, give ALL error messages from tf. If you have a bug or core, describe what you did or what happened before the problem, and if the problem is repeatable. If you have a core file, do NOT send it. Porting ------- I have no personal interest in Mac OS 9, DOS, Windows 95, Windows NT, or Amiga, so I don't plan on porting to them. However, I am willing to work with someone who wants to try and is willing to follow my guidelines. Basically, this means keeping the platform-specific code seperate and to a minimum, and not adding new features.
Not sure how to make private communications via github. I tried to reach out via your website, but your contact page doesn't work, at least not in the latest ChromeOS. Captcha seemed to work, but when I go to send, nothing happens.
Didn't have anything in particular to say, just wanted to reach out and give you a way to contact me if need be, as I'll probably be submitting more pull requests in the future.
Hi,
Another issue i've come across.
Image at: http://imgur.com/gN09q
The first time I typed '.bigg test' was what made the talker talk to myself.
The second time I typed '.bigg £test'
This caused some issues with the talker, but as you can see from the third line, my history suggests that my input contained an unprintable character. This suggests to me that backspace over unicode characters isn't quite working as expected? The character is being removed from the screen, but perhaps some of the bytes of the character still exist in the input?
Thanks
Found an easy way to crash TinyFugue.
This would be a pretty standard way to set colors in my status bar:
/set vw_tablist_fg_world_attrs=@{Cyellow,Cbgrgb001}
But if I just set it to a non-existent color:
/set vw_tablist_fg_world_attrs=@{Ctestyellow,Cbgrgb001}
And then change my fgworld to trigger the color change in the status bar, TF dumps core. Presumably similar would happen with any way of setting that invalid color. Looks like colors are just being passed for evaluation rather than sanity checked.
Haven't yet tested if I can get a MUSH to remotely crash TF with this bug, but seems likely.
Tagging @Sketch in case he's not watching here.
If I type anything non-ASCII (say '£££') and then press left and right cursor keys, the editing doesn't work correctly, and eventually I start getting weird errors[1] that suggest buffer overflows.
[1]
% The key "shift_right" is undefined; you may use "/def key_shift_right =
" to define it. See "/help keys".
Check out this branch when you have a chance:
https://github.com/warmstarter/tinyfugue-1/tree/utf8-handler-patch
It's this patch I found here applied to release:
https://sourceforge.net/p/tinyfugue/feature-requests/9/
It definitely show not be going into release, and in one test it actually added slight problems to the UTF8. Talking with @Sketch he thought the patch would be useful, if not for the actual code, but for the info on where certain things might go.
See if any inspiration comes.
===================
This line was produced by my MUSH:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Character Sheet━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
Copied into a 'release' TF and pasted back this is returned:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Character Sheet━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
Seems identical to me, but this is what this patch gives:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Charan cter Sheet━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━âbe��━┓ se
Those are some odd errors at th end there, as that's a pretty uniform line. I haven't really looked into this too much, just wanted to try it out and get it to the both of you to see if you think there's anything there that can be used.
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Charan cter Sheet━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━âbe��━┓ se
Hi,
I've been using this patched version of tf5 for a while on a talker called the dockyard (wooooooooooooooy.com 4000).
You have to switch unicode on using the unicode command, after which, some output displays unicode characters. A good example is the 'testcard' command. The bordered around the output will be a unicode character.
Now, the problem arises... if I display testcard, then switch to another world and back again, some of the unicode characters get all confused. If I page up through some output and then back down again, the characters display fine.
Example images showing what I mean:
http://imgur.com/1jpV6,jHXm6,DwnSg
There's three images to switch betweem, a before, an after_world_switch and an after_page_up_down.
Is this a problem with the code or could it be something else?
Accidentally got my terminal hardcoded, set to hardcode-vt100 and noticed there's a bug. Initial status line seems to start one space in, which messes up a ton of things. My guess is there's either an off by one error or a slightly mangled ANSI control sequence. Haven't gotten to investigate thoroughly yet, but the earlier versions I checked still had the bug. Doesn't seem like a priority as most people are not going to need hardcode-vt100 terminal encoding, but it could be doing more subtle stuff. Worth fixing eventually, so leaving a note here.
I can reliably remotely crash this version of TF. There's already one version patched, but I would like to reliably disclose this to you, please tell me how best to contact.
I just noticed that HILITE/Bold is broken in this build. I went back through and it's broken before I ever got involved. I just tried the last check-in before I got involved, but haven't developed deeper into where it happened.
Status bar math doesn't take into account UTF8 characters properly.
Easily seen with variable width status entries on the left containing UTF8 characters and fixed width ones on the right, particularly with a background color.
Can you update the CI check to run autoconf first? Getting these merges done while tracking 'configure' is just going to be a hassle. We shouldn't really be tracking that anyway.
When you write something that is past Z it adds an extra space to the input line, if you delete that you end up with random letters removed -- but it sends the string as it should
"Björn köper smör på lördag"
becomes
"Bjö rn kö per smö r på lö rdag"
GCC-14 now enables by default errors for long-deprecated C features.
It causes tinyfugue to fail to build with error:
socket.c: In function ‘handle_socket_lines’:
socket.c:2657:27: error: assignment to ‘String *’ from incompatible pointer type ‘conString *’ [-Wincompatible-pointer-types]
2657 | incoming_text = line;
| ^
Gentoo bug: https://bugs.gentoo.org/921030
The Free Software Foundation is no longer at 675 Mass Ave, Cambridge, MA.
Our new address is 51 Franklin Street, Suite 500, Boston, MA 02110.
You can confirm this for yourself here: http://www.fsf.org/about/contact/
Please update all references to our old address in your code so people can continue to contact us (we haven't been at the old address for more than a decade at this point)
Kind regards,
matt
Matt Lee
Campaigns Manager
Free Software Foundation
Make fails with the following:
gcc -g -O2 -DDATADIR=/Users/xxxxx/Applications/local/share -c -o macro.o macro.c
macro.c:235:63: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
startopt(CS(args), "usSp#c#b:B:E:t:w:h:a:f:P:T:FiIn#1m:q" +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
macro.c:235:63: note: use array indexing to silence this warning
startopt(CS(args), "usSp#c#b:B:E:t:w:h:a:f:P:T:FiIn#1m:q" +
^
& [
1 warning generated.
gcc -g -O2 -DDATADIR=/Users/xxxxx/Applications/local/share -c -o main.o main.c
gcc -g -O2 -DDATADIR=/Users/xxxxx/Applications/local/share -c -o malloc.o malloc.c
malloc.c:15:1: error: unknown type name 'caddr_t'
caddr_t mmalloc_base = NULL;
^
1 error generated.
make[1]: *** [malloc.o] Error 1
make: *** [files] Error 2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.