Multiple problems with latest CVS on WindowsXP

Just downloaded Vega Strike and need help? Have a question but don't know where to start? Ask here.
Post Reply
iulianov
Star Pilot
Star Pilot
Posts: 6
Joined: Tue Mar 10, 2009 3:16 am

Multiple problems with latest CVS on WindowsXP

Post by iulianov »

The basic problem that I am having now is that the latest CVS build does not allow me to use my joystick and some of the controls do not work.
What I did -
Compiled the game using VC9
Ran setup.exe and selected the 3axis+throttle joystick
Edited win32\vegastrike.config to include my own bindings
Ran the game.

First problem I ran into:
I tried running vegastrike.exe but kept getting errors(These were coming from windows saying that the program did something really bad)
It turns out that the latest CVS creates vegastrikeG.exe and vegastrikeGR.exe. The only executable that actually runs the game is vegastrikeGR.exe.
If this is not some bug in the makefiles then the wiki should be updated and vegastrike.exe should be replaced by the other executables in CVS

Second problem:
After starting a new game and noticing the my joystick does not work(see problem 3) I tried to quit.
I pressed Esc(bound to Cockpit::Quit) and the quit menu popped up. I tried pressing 'q' like it said but nothing happened :(
The only way I found to exit the game was to actually kill the process. I am suspecting that this might have something to do with the fact that I bound 'q' to ThrustUp (This bug does not happen if I use the default config from CVS and if I use the default config from .5)


Third and most important problem:
The joystick does not want to work at all in the CVS version. I have tried to use the default config from CVS and I have tried to change the joystick number(0,1,2,3).
I have also tried to bind and use a key to JoyStickToggleKey (Ctrl+F1) with no success.
Also I tried to just paste my keyboard bindings into the default cvs config but I still had no luck.
I also have .5 installed in a different directory and that one can use the joystick without any problems(but when I tried its config in the CVS version my joystick would not respond)

Following is the bindings that I have setup for my system:(I have an external program remap buttons to keyboard keys, that is why the following config looks so uncomfortable to use)

Code: Select all

<bindings>
  <bind key="esc" modifier="none" command="Cockpit::Quit" />
  <bind key="function-1" modifier="ctrl" command="ConsoleKeys::BringConsole" />
  <bind key="1" modifier="alt" command="SaveTarget1" />

<!--HAT BUTTON:Up -->
<bind key="q" modifier="none" command="ThrustUp" />
<bind key="Q" modifier="none" command="Cockpit::PitchUp" />
<bind key="q" modifier="alt" command="Cockpit::Inside" />

<bind key="a" modifier="none" command="ThrustUp" />
<bind key="A" modifier="none" command="Cockpit::PitchUp" />
<bind key="a" modifier="alt" command="Cockpit::Inside" />

<!--HAT BUTTON:Down -->
<bind key="w" modifier="none" command="ThrustDown" />
<bind key="W" modifier="none" command="Cockpit::PitchDown" />
<bind key="w" modifier="alt" command="Cockpit::InsideBack" />
<bind key="W" modifier="alt" command="SheltonKey" />

<bind key="s" modifier="none" command="ThrustDown" />
<bind key="S" modifier="none" command="Cockpit::PitchDown" />
<bind key="s" modifier="alt" command="Cockpit::ScrollDown" />

<!--HAT BUTTON:Left -->
<bind key="e" modifier="none" command="ThrustLeft" />
<bind key="E" modifier="none" command="Cockpit::YawLeft" />
<bind key="e" modifier="alt" command="Cockpit::InsideLeft" />

<bind key="d" modifier="none" command="ThrustLeft" />
<bind key="D" modifier="none" command="Cockpit::YawLeft" />
<bind key="d" modifier="alt" command="Cockpit::ScrollUp" />

<!--HAT BUTTON:Right -->
<bind key="r" modifier="none" command="ThrustRight" />
<bind key="R" modifier="none" command="Cockpit::YawRight" />
<bind key="r" modifier="alt" command="Cockpit::InsideRight" />

<bind key="f" modifier="none" command="ThrustRight" />
<bind key="F" modifier="none" command="Cockpit::YawRight" />

<!-- MAIN TRIGGER -->
<bind key="t" modifier="none" command="FireKey" />
<bind key="T" modifier="none" command="MissileKey" />
<bind key="t" modifier="alt" command="LockTargetKey" />

<bind key="g" modifier="none" command="ASAP" />
<bind key="G" modifier="none" command="ToggleWarpDrive" />

<!-- LEFT TRIGGER -->
<bind key="y" modifier="none" command="PickTargetKey" />
<bind key="Y" modifier="none" command="SwitchCombatMode" />

<bind key="h" modifier="none" command="JumpKey" />
<bind key="H" modifier="none" command="RequestClearenceKey" />

<!--1-->
<bind key="u" modifier="none" command="ReverseWeapSelKey" />
<bind key="U" modifier="none" command="ReverseMisSelKey" />
<bind key="u" modifier="alt" command="CloakKey" />

<bind key="j" modifier="none" command="StopKey" />
<bind key="j" modifier="alt" command="SetVelocityNullKey" />

<bind key="m" modifier="none" command="Comm1Key" />

<!--2-->
<bind key="i" modifier="none" command="WeapSelKey" />
<bind key="I" modifier="none" command="MisSelKey" />
<bind key="i" modifier="alt" command="ECMKey" />

<bind key="k" modifier="none" command="StartKey" />
<bind key="K" modifier="none" command="MatchSpeedKey" />
<bind key="k" modifier="alt" command="SetVelocityRefKey" />

<bind key="," modifier="none" command="Comm2Key" />

<!--3-->
<bind key="o" modifier="none" command="TurretAIOff" />
<bind key="O" modifier="none" command="SwitchControl" />

<bind key="l" modifier="none" command="UnDockKey" />
<bind key="L" modifier="none" command="Cockpit::NavScreen" />

<bind key="." modifier="none" command="Comm3Key" />

<!--4-->
<bind key="p" modifier="none" command="TurretAIOn" />
<bind key="P" modifier="none" command="TurretControl" />
<bind key="p" modifier="alt" command="ToggleAutoTracking" />

<bind key=";" modifier="none" command="DockKey" />
<bind key=":" modifier="none" command="Cockpit::MapKey" />

<bind key="/" modifier="none" command="Comm4Key" />

<!--5-->
<bind key="[" modifier="none" command="CommAttackTarget" />
<bind key="{" modifier="none" command="CommBreakForm" />
<bind key="[" modifier="alt" command="CommHelpMeOut" />

<bind key="5" modifier="none" command="Cockpit::SwitchLVDU" />
<bind key="%" modifier="none" command="Cockpit::SwitchULVDU" />
<bind key="5" modifier="alt" command="Cockpit::SwitchUMVDU" />
<bind key="%" modifier="alt" command="Cockpit::ScrollUp" />

<bind key="]" modifier="none" command="Comm5Key" />

<!--6-->
<bind key="-" modifier="none" command="ABKey" />
<bind key="_" modifier="none" command="CommFormUp" />
<bind key="-" modifier="alt" command="CommHelpMeOutCrit" />

<bind key="=" modifier="none" command="Cockpit::SwitchRVDU" />
<bind key="+" modifier="none" command="Cockpit::SwitchURVDU" />
<bind key="=" modifier="alt" command="Cockpit::SwitchMVDU" />
<bind key="+" modifier="alt" command="Cockpit::ScrollDown" />

<bind key="\" modifier="none" command="Comm6Key" />

<!--7-->
<bind key="`" modifier="none" command="NearestHostileKey" />
<bind key="~" modifier="none" command="MissileTargetKey" />
<bind key="`" modifier="alt" command="TurretThreatTargetKey" />

<bind key="0" modifier="none" command="ReverseMissionTargetKey" />
<bind key=")" modifier="none" command="NearestPlanetKey" />
<bind key="0" modifier="alt" command="NearestFriendlyKey" />

<bind key="1" modifier="none" command="Comm7Key" />

<!--8-->
<bind key="2" modifier="none" command="NearestDangerousHostileKey" />
<bind key="@" modifier="none" command="IncomingMissleTargetKey" />
<bind key="2" modifier="alt" command="TurretPickTargetKey" />
<bind key="@" modifier="alt" command="TurretFireAtWill" />

<bind key="3" modifier="none" command="MissionTargetKey" />
<bind key="#" modifier="none" command="NearestBaseKey" />
<bind key="3" modifier="alt" command="NearestJumpKey" />

<bind key="4" modifier="none" command="Comm8Key" />


<!-- Joystick Config -->
<axis name="x" joystick="0" axis="0" inverse="false" />
<axis name="y" joystick="0" axis="1" inverse="false" />
<axis name="z" joystick="0" axis="2" inverse="false" />
<axis name="throttle" joystick="0" axis="3" inverse="false" />
<!-- The joystick buttons are translated into keyboard keys in an external program -->


</bindings>
And following is the output from the console when starting the game

Code: Select all

 In path G:\Games\vegastrike\win32\bin
Windows version 5 1
Vega Strike
See http://www.gnu.org/copyleft/gpl.html for license details.

GOT SUBDIR ARG =
Found data in G:\Games\vegastrike\win32\bin/../data
Using G:\Games\vegastrike\win32\data as data directory
Using .vegastrike as the home directory
Found MODDIR = G:\Games\vegastrike\win32\data/mods
USING HOMEDIR : G:\Games\vegastrike\win32\data/.vegastrike As the home directory

CONFIGFILE - No config found in home : G:\Games\vegastrike\win32\data/.vegastrike/vegastrike.config
CONFIGFILE - No home config file found, using datadir config file : G:\Games\vegastrike\win32\data/vegastrike.config
DATADIR - No datadir specified in config file, using ; G:\Games\vegastrike\win32\data
SIMULATION_ATOM: 0.05
MISSION_NAME is empty using : main_menu.mission
running import sys
print sys.path
sys.path = [r"G:\Games\vegastrike\win32\data\modules\builtin",r"G:\Games\vegastrike\win32\data\modules\quests",r"G:\Games\vegastrike\win32\data\modules\missions",r"G:\Games\vegastrike\win32\data\modules\ai",r"G:\Games\vegastrike\win32\data\modules",r"G:\Games\vegastrike\win32\data\bases"]
['G:\\Games\\vegastrike\\win32\\bin\\python26.zip', 'C:\\Python26\\Lib', 'C:\\Python26\\DLLs', 'C:\\Python26\\Lib\\lib-tk', 'G:\\Games\\vegastrike\\win32\\data', 'G:\\Games\\vegastrike\\win32\\bin', 'C:\\Python26', 'C:\\Python26\\lib\\site-packages']
testing VS randomrunning import sys
print sys.path
['G:\\Games\\vegastrike\\win32\\data\\modules\\builtin', 'G:\\Games\\vegastrike\\win32\\data\\modules\\quests', 'G:\\Games\\vegastrike\\win32\\data\\modules\\missions', 'G:\\Games\\vegastrike\\win32\\data\\modules\\ai', 'G:\\Games\\vegastrike\\win32\\data\\modules', 'G:\\Games\\vegastrike\\win32\\data\\bases']
Game Mode Params 1024x1024 at depth 32 @ 60 Hz
OpenGL Extensions supported: GL_ARB_color_buffer_float GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_framebuffer_object GL_ARB_imaging GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shadow GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_array_object GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_gpu_program_parameters GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_sRGB GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_blend_square GL_NV_copy_depth_to_color GL_NV_depth_clamp GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_texgen_reflection GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control
OpenGL::GL_EXT_compiled_vertex_array unsupported
OpenGL::GL_EXT_multi_draw_arrays supported
OpenGL::Accurate Fog Distance supported
OpenGL::Generic Texture Compression supported
OpenGL::S3TC Texture Compression supported
OpenGL::Multitexture supported (4 units)
OpenGL::TextureCubeMapExt supported
OpenGL::S3TC Texture Clamp-to-Edge supported
OpenGL::S3TC Texture Clamp-to-Border supported
OpenGL::EXTColorTable unsupported
axes: 3 buttons: 15 hats: 0
axes: 3 buttons: 15 hats: 0
FactionXML:LoadXML factions.xml
Reshaping 1024 768Contents of star system:
<system name="Empty" background="backgrounds/black" nearstars="0" stars="0" starspread="0"  y="0" z="0" x="0">
</system>

Min (0.000000, 0.000000, 0.000000) Max(0.000000, 0.000000, 0.000000) MinLumin 1.
000000, MaxLumin 1.000000Read In Star Count 0 used: 2000
Min (0.000000, 0.000000, 0.000000) Max(0.000000, 0.000000, 0.000000) MinLumin 1.
000000, MaxLumin 1.000000Read In Star Count 0 used: 38
Loading a starsystem
Loading Star System Special/Empty
No such command: ToggleAutoTracking
No such command: NearestHostileKey
No such command: IncomingMissleTargetKey
No such command: TurretFireAtWill
No such special key: pause
FOUND MODIFICATION = player FOR PLAYER #0
CREATING A LOCAL SHIP : dumbfire
Hi helper play 0
HereInitializing optimizer
pox 119990000000.000000 -9000000.000000 -109990000000.000000
Force feedback support disabled when compiled
Loading completed, now network init
Loading active missions True
  IS NOW AT  Special/Empty

Launching bases for Special/Empty
Launching units for Special/Empty
Adding news
conditioning
nonzeroing
Edit:
Regarding the joystick problem: here is a snippet of what the .5 executable sends to stdout (also its nice that the .5 one creates log files where the svn version just spits things out into the console)

Code: Select all

...
3 joysticks were found.

The names of the joysticks are:
    PPJoy Virtual joystick 4
axes: 6 buttons: 16 hats: 1
    Saitek AV8R Classic Stick
axes: 5 buttons: 14 hats: 1
    PPJoy Virtual joystick 3
axes: 6 buttons: 16 hats: 1
...
and here is what the CVS version prints:

Code: Select all

...
axes: 3 buttons: 15 hats: 0
axes: 3 buttons: 15 hats: 0
...
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: Multiple problems with latest CVS on WindowsXP

Post by loki1950 »

The not recognizing the "q" key is a know problem as apparently it's bound in C++ to only that key and any duplicate assignment can invalidate the whole config file as the engine seems to get lost done that way a long time ago i guess and changing it would require a refactoring of that sub-system and therefore it's priority to get fixed is pretty low.There is a plan to move the bindings out of the config file entirely but again like lots of FOSS projects we are short on people with the knowledge and desire to actually do it :(
Now as to the first problem you are the first to report using VC9 so there may be some issues right there current binaries in svn where generated with VC8 and we only moved to it from VSC7 after SP3 made introduce the manifest file for each app and i have a feeling that VC9 introduces is own wrinkles but of that i an not sure i have never build VS windows side only Linux side and there with only minor problems missing header packages mostly so i believe i had better point one of the devs to this thread.

From the that console output

Code: Select all

axes: 3 buttons: 15 hats: 0
axes: 3 buttons: 15 hats: 0

It looks like SDL found your joystick but these may have disabled it

Code: Select all

No such command: ToggleAutoTracking
No such command: NearestHostileKey
No such command: IncomingMissleTargetKey
No such command: TurretFireAtWill
No such special key: pause
SDL can be finicky and i am not sure if it supports external binding apps at all and there seems to be a bug in the windows version in that the "alt" key is not recognized at all caused some consternation when we discovered it shortly after the release of 0.5

Sorry that i can't be of much help as i said time to call in some backup have you tried with the vanilla config file i would be very much interested in that console output and so would any back up i call in.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
iulianov
Star Pilot
Star Pilot
Posts: 6
Joined: Tue Mar 10, 2009 3:16 am

Re: Multiple problems with latest CVS on WindowsXP

Post by iulianov »

Thank you for the information. I have been able to get it up and running.
My problem was that I compiled the executable using the "Release GLUT" solution configuration. I think this caused it to not use the SDL joystick input. When I recompiled using the "Release" configuration it all started working.
The differences between the different configurations should be put onto the wiki. I did not dig too deep in the code to actually figure out how the two code paths are different.

I have another scrap of information to add that hopefully will be integrated into the documentation:

If you try to bind commands to certain keys the game gets completely messed up.
I tried binding a command to the following keys: '>' and '&' (The rest of the keys seem to work normally but I bet that the " and ' keys might also cause problems)
Then I started vs and the following happened:
a) vs ignores my fullscreen preferences and starts in windowed mode
b) vs ignores my bindings - my joystick stopped working, i couldnt exit(although the ESC key worked)
c) vs does not load the main menu but instead as soon as it loads it puts me on a planet in an empty ship
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: Multiple problems with latest CVS on WindowsXP

Post by loki1950 »

Glad you got it running at least :)

Now regarding the present behavior it may be that it is not finding/reading the config file the console output is captured in two text files stdout and stderr a look at the beginning should tell what is going on a good practice that i have followed is to always run the setup app before running the game with any new binary and also clearing out the contents of the .vegastrike folder so a clean set of files is generated on start up running just after that clean out puts a copy of vegastrike.config in there and it take president over the one in the data tree this was originally done for Linux and OSX as writing to the system areas of the OS is forbidden apps can only write to the users home folder Vista also is enforcing something similar with it's security model.You might have a look around to see if there is are newer versions of the SDL dlls we use bug fixes hopefully.Happy Hacking.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
iulianov
Star Pilot
Star Pilot
Posts: 6
Joined: Tue Mar 10, 2009 3:16 am

Re: Multiple problems with latest CVS on WindowsXP

Post by iulianov »

The solution to the problem is to just not bind those keys. I have the game running normally now because I removed those binds from the vegastrike.config file - no need to run setup or clean the .vegastrike directory.

On a somewhat related topic:
If I clean the .vegastrike directory I start getting errors saying that it cant load playlists and at random times the game crashes on me with an error message from python in stderr.txt. The error message says that it couldnt load "playlists\peace\around_sig\AWACS.m3u".
Right now I copied over the playlist directory and all the .m3u files from the original .vegastrike dir into my current one. Hopefully I will stop getting the errors and the game will stop crashing.
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: Multiple problems with latest CVS on WindowsXP

Post by loki1950 »

So you are finding your way around then have fun both playing and hacking have you run the config file thru a XML validation app i have found Peter's XML editor and Notepad++ handy windows side.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
CLoneWolf
ISO Party Member
ISO Party Member
Posts: 443
Joined: Thu May 01, 2008 5:14 pm

Re: Multiple problems with latest CVS on WindowsXP

Post by CLoneWolf »

iulianov wrote:I have another scrap of information to add that hopefully will be integrated into the documentation:

If you try to bind commands to certain keys the game gets completely messed up.
I tried binding a command to the following keys: '>' and '&' (The rest of the keys seem to work normally but I bet that the " and ' keys might also cause problems)
Then I started vs and the following happened:
a) vs ignores my fullscreen preferences and starts in windowed mode
b) vs ignores my bindings - my joystick stopped working, i couldnt exit(although the ESC key worked)
c) vs does not load the main menu but instead as soon as it loads it puts me on a planet in an empty ship
The problem is not with the keys but with characters; > and & are special characters in *ML languages; > is used to end tags, so you can't use it by itself or you'll break the file syntax, causing side effects like a b and c as you mentioned.

The solution might be the same used in html pages: entities; check this page for a list of them
http://www.w3schools.com/HTML/html_entities.asp
Post Reply