Commit graph

57 commits

Author SHA1 Message Date
6a0f9d9874 client: Support $if Empire in .inputrc
Set the application name to "Empire" to support Empire-specific
customization of readline.  Use in .inputrc looks like this:

    $if Empire
    set bell-style audible
    set history-size 500
    else
    set bell-style visible
    $endif

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 11:22:30 +02:00
ba484d1389 man/empire: Explain restricted mode a bit better
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 11:22:30 +02:00
2fe38c1acb client: Enable history file by default unless -r
Make -H take an argument.  Default it to ~/.empire_history, except in
-r restricted mode, where history is off unless you specify -H.
That's because restricted mode restricts the player's access to the
local system, and that includes the history file.  If you want to
grant access to a history file, you have to do so explicitly.

Thanks to the previous commit, there is no need to suppress saving to
~/.empire_history in the test suite.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 11:22:30 +02:00
0cb6690600 client: Tie up a few lose readline ends
Document readline in more detail in man/empire.6.

Make @history_file local to main().

main() silently truncates the home directory name to 1000 characters
when constructing the history file name; mark FIXME.

Set @rl_already_prompted just once.

Write history file on unsuccessful exit, too.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 11:22:29 +02:00
Martin Haukeli
f1fc0df03d client: Add readline support to empire client
Readline provides fancy command line editing such as <Arrow Up> for
previous commands and CTRL+A to jump to the beginning of the line.

This patch does not add any completion on <tab> key, a TODO, if you
will.

A new command line flag, -H, turns on saving the history to disk.
This may have security implications on shared computers, as all
commands are saved as-is.  Thus "change re 1234" would be logged
directly to the file.

Signed-off-by: Martin Haukeli <martin.haukeli@gmail.com>

Rebase on top of preparatory work, fix a few bugs, and tidy up:

* Update the standalone client build, too.

* Fix the Windows build.

* Keep command line options sorted case-insensitively.

* Error out when $HOME is unset and getpwuid() fails, just like we do
  for $LOGNAME.

* Give @input_from_rl, @has_rl_input static linkage.

* @has_rl_input is a flag, not a counter, set and test it accordingly.

* Save all input in history, not just commands.  Martin's attempt to
  recognize commands works only as long as the server sends prompts
  faster than the user sends input.  Drop that part, and update commit
  message accordingly.

* Fix recv_input() not to truncate value of strlen() to int, and to
  use memmove() for updating @input_from_rl in place.

* Clean up whitespace in a few places.

* Tweak commit message.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 11:22:29 +02:00
93dfd60c4b man/empire: Trim unwanted space in synopsis
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2015-12-13 10:46:58 +01:00
64f32cde53 man: Get rid of unwanted space in SYNOPSIS
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2015-03-08 17:48:17 +01:00
Marisa Giancarla
0a6eb70b28 client: New option -r for restricted mode
Redirections and the execute command let the user read and write files
and run programs on the local system.

Restricted mode prevents such access.  This is useful when you want to
grant somebody access to just Empire, but not to the host system's
user account that runs the client.

Signed-off-by: Marisa Giancarla <fstltna@me.com>
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2015-03-08 17:30:46 +01:00
f4f048234c empdump: Omit redundant data from export, new -c includes it
Cuts size of export files in test suite by a factor of four.  Not a
big deal for disk usage, as export files compress very well, and disk
space is cheap anyway.  Export files are simply easier to work with
when they aren't full of redundant crap.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2015-02-01 16:53:00 +01:00
2a6b6c941a fairland.6: Belatedly drop reference to ore
Missed in commit e3eadcd8, v4.2.14.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2013-06-09 17:04:00 +02:00
bb8169ba3a Put URIs and e-mail addresses in <angle brackets>
Also end URIs with '/' where appropriate.

Refrain from touching scripts/ and Stephen Crane's LWP authorship
note.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2013-05-26 09:48:16 +02:00
44235c0092 Fix empire(6) synopsis for argument of -s
Commit 464094a6 (v4.3.26) changed it in section description, but
missed section synopsis.
2011-12-29 11:47:04 +01:00
c6d3f68bbb New server option -F to force start even when state looks bad
Risks crashes and further corruption, but gives deities a chance to
fix up a bad game state with edit commands and such.
2011-07-10 21:17:01 +02:00
7e2008e7f4 License upgrade to GPL version 3 or later
Why upgrade?  I'm not a lawyer, but here's my take on the differences
to version 2:

* Software patents: better protection against abuse of patents to
  prevent users from exercising the rights under the GPL.  I doubt
  we'll get hit with a patent suit, but it's a good move just on
  general principles.

* License compatibility: compatible with more free licenses, i.e. can
  "steal" more free software for use in Empire.  I don't expect to steal
  much, but it's nice to have the option.

* Definition of "source code": modernization of some details for today's
  networked world, to make it easier to distribute the software.  Not
  really relevant to us now, as we normally distribute full source code.

* Tivoization: this is about putting GPL-licensed software in hardware,
  then make the hardware refuse to run modified software.  "Neat" trick
  to effectively deny its users their rights under the GPL.  Abuse was
  "pioneered" by TiVo (popular digital video recorders).  GPLv3 forbids
  it.  Unlikely to become a problem for us.

* Internationalization: more careful wording, to harden the license
  outside the US.  The lawyers tell us it better be done that way.

* License violations: friendlier way to deal with license violations.
  This has come out of past experience enforcing the GPL.

* Additional permissions: Probably not relevant to us.

Also include myself in the list of principal authors.
2011-04-12 21:20:58 +02:00
464094a693 Change how client option -s interprets ':'
Old version recognizes the first ':', which prevents use of ':' in
host names.  They are used in numerical IPv6 addresses.  New version
recognizes the last ':', which prevents use of ':' in service names.

Old version treats empty host or port specially (use default).
Documentation suggests ':' is required, but the code doesn't do that.
Instead, the argument is interpreted as host, even when it's empty.

New version makes the HOST: part optional.  You can't specify host and
default the port.  Tough.  Keeps documentation and code as simple as
possible.

Compare:

                old version             new version
    argument    host    port            host    port
    ""          ""      default         default ""
    "A"         "A"     default         default "A"
    ":"         default default         ""      ""
    "A:"        "A"     default         "A"     ""
    ":B"        default "B"             ""      "B"
    "A:B"       "A"     "B"             "A"     "B"
2010-05-09 09:08:01 +02:00
Tom Dickson-Hunt
f4fe7da1fb New client option -s to specify server host and port
Overrides EMPIREHOST and EMPIREPORT.
2010-05-09 09:07:01 +02:00
6e9dd173dd Document empire options -h and -v in manual page
Was forgotten in commit 46c0410e, v4.3.11.  Reported by Tom
Dickson-Hunt.
2010-03-27 13:16:18 +01:00
625022e1df Contract empire options in manual page synopsis 2010-03-27 13:04:27 +01:00
a3f2829358 Sort empdump options in manual page synopsis 2010-03-27 13:02:22 +01:00
627e7d452d New server option -E to choose what to do on oops
Three options: abort, crash-dump, nothing.  crash-dump works by
aborting a fork.  It isn't implemented for Windows.

The oops action is no longer tied to daemon mode, but -d still implies
-E abort for convenience.
2008-04-21 21:52:27 +02:00
Ron Koenderink
6942ea94dd Fix emp_server manual page synopsis for Windows
The -R option appears in the wrong place.
2008-04-07 08:30:43 +02:00
4525ae2d17 Change empdump syntax
Require -i for import, and fail when no action is requested.  Also
rename option -t to -n.
2008-03-17 19:54:08 +01:00
f33b96b1d1 Set timestamp automatically on write
Do it in do_write().  Remove the setting of timestamps elsewhere.

This fixes empdump to set timestamps to the current time instead of
zero on import.
2008-03-14 20:25:43 +01:00
7ec0f0c0d0 New utility program empdump
empdump exports and imports game state as plain text.  Limitations: it
currently can't export player bmaps, power report, telegrams,
announcements, message of the day, no-login message and log files.
Exported floating-point values may be inexact.  Importing an exported
game state may not result in identical data files; besides the loss of
floating-point precision just mentioned, coordinates are normalized,
and characters beyond a string's terminating zero in a character array
are lost.  Bug: importing resets timestamps to zero.  It should set
them to the current time.
2008-03-14 20:25:42 +01:00
e58d3206bb Clean up trailing whitespace-space in manual pages 2008-02-17 19:50:38 +01:00
7379041d26 Fix title and section header in manual pages
Commit 530deef2 failed to update .TH of fairland(6), files(6) and
pconfig(6).

Commit 530deef2 failed to update .TH of empire(6).

Commit eeb9d3cb created empsched(6) with the wrong .TH.
2008-02-07 08:01:54 +01:00
36044a0534 Fix empsched's name in its manual page 2008-01-19 10:32:02 +01:00
91505ef798 Clarify -2.
Warn about passwords on the command line.
2007-12-22 08:07:55 +00:00
Ron Koenderink
ec484e17a7 (main, init_server, emp_server.6): Add -R command line option to set
a seed for the random function.

(nightlybuild.sh): Add the -R 1 for the server.
(nightlybuild.sh): Switch to -R 1 for the fairland as 1 is safer.
Some systems might generate lousy randomness from a
zero seed.

(prng.patch): Not required anymore, -R 1 is used instead.

(main, emp_server.6): Rename -r and -R to -u and -U.  "-R" is now used for random seed.
2007-10-23 03:05:56 +00:00
808611da87 Rewrite for clarity and correctness. 2007-09-02 12:06:22 +00:00
e68504b3c1 Fix the previous revision. 2007-09-02 11:48:36 +00:00
83acae02be Update AUTHORS. 2007-07-27 19:12:32 +00:00
eeb9d3cb04 New utility program empsched. 2007-07-13 16:49:13 +00:00
71320ed67f New update scheduler:
(schedulefil): New.
(set_dirs, set_paths): Rename.  Initialize schedulfil.
(read_schedule): New.  Can read several updates, which will be used in
later changesets.
(update_time): Change to array.  Will be used in later changesets.
(update_schedule_anchor): New.
(update_init): Initialize it.
(update_get_schedule): New.
(update_init): Call it to initialize update_time[].
(update_sched): Rewrite.
(update_forced, update_wanted): Replace.
(update_reschedule): New.
(main): Call it on SIGHUP to reload the schedule.
(update_trigger, update_force, force, player_coms): Drop force's
capability to schedule updates in the future, because it's not worth
the trouble to implement again.  Deities can simply edit the schedule
file to schedule updates.  Remove update_force() and
update_trigger()'s parameter.
(upda): Update for new scheduler.  Take care to keep output the same
as far as possible, even though it's ugly, to avoid breaking clients.
(update_policy, adj_update, update_times, hourslop, blitz_time):
econfig keys removed.
(update_demand, UPD_DEMAND_NONE, UPD_DEMAND_SCHED, UPD_DEMAND_ASYNC)
(update_demandpolicy, UDP_NORMAL, UDP_TIMES, UDP_NORMAL, UDP_BLITZ)
(UDP_MAX, UDP_DEFAULT, UDDEM_TMCHECK, UDDEM_COMSET, UDDEM_DISABLE)
(UDDEM_MAX, UDDEM_DEFAULT): econfig key and values replaced.  Users
changed.  wantupd.h is now empty, remove.
(demand_check): External linkage.
(update_policy_check): Now pointless, remove.
(is_daytime_near, min_to_next_daytime, regular_update_time)
(scheduled_update_time, next_scheduled_time, updatetime)
(next_update_time, next_update_check_time): Unused, Remove.

(demand_check, demandupdatecheck): Move call of demand_update_time()
from demand_check(), which controls all demand updates, to
demandupdatecheck(), which controls only unscheduled ones.  Fixes
update command not to lie about the next scheduled demand update.

(demandupdatecheck): Check updates_disabled() so that zdone no longer
claims to trigger an update when it can't.
2007-07-11 22:27:29 +00:00
b8a1833438 Fix markup. Reorder so that options appear in alphabetical order.
Document -h and -v for fairland and files.  Supply proper .SA.  Minor
polishing.
2007-07-11 19:59:47 +00:00
530deef2fe Install all manual pages in section 6, where they belong. Source
files renamed.
2007-07-11 19:45:28 +00:00
f940413c67 Document signal use. Since Windows lacks real signals, it is only
included if number register w is zero.
2006-06-14 18:05:16 +00:00
96e27a73a5 Belatedly rename emp_client.6 to empire.6, to match the changed
program name in the new build process.
2006-01-22 16:00:17 +00:00
7ef7aa83b8 Client UTF-8 support.
(login): New parameter utf8.  If set, request option utf-8 from
server.
(expect, recvline): Split recvline() out of expect().  Replace or
remove some unhelpful diagnostics.
(eight_bit_clean): New.
(screen): If eight_bit_clean is set, highlighting is switched with
SO/SI.  Else characters with MSB set are highlighted.
(main): New option -u to request UTF-8 and set eight_bit_clean.
2005-05-27 17:00:25 +00:00
Ron Koenderink
899bc18853 (): Remove -e from the list of no parameter options in the fairland
manual page.  There is not -e without parameter option.
There is -e with parameter option and it is properly
documented.
2005-03-25 21:28:25 +00:00
782474a6c3 Document Windows usage. Since this is useless and confusing on other
platforms, it is only included in if number register w is non-zero.
2005-03-25 08:45:41 +00:00
2cf7bacf03 Remove .UC; we're not be part of BSD. 2005-03-22 20:56:41 +00:00
147cf97224 (main): Rev. 1.43 broke option -D. Its meaning in presence of -e is
unclear.  Other programs only support -e.  Remove -D.
(install_service): Remove argument datadir_set.

(main): New option -v.

(main): Exit successfully after -h.

(main): Don't print usage on unknown options, just point to -h.

(print_usage): Rewrite.  Deprecate use of non-option arguments.
2005-03-16 20:53:27 +00:00
3939741d65 (main): Fix -p to imply -d as documented, not just !daemonize.
(main): -s no longer implies -p.
(main) [_WIN32]: Recognize -s.  ntthread.c ignores it.
2005-03-16 18:41:44 +00:00
77a74e2ef7 Fix spelling of daemon, for crying out loud!
Remove irrelevant information on player thread.

Clarify that -d makes the server abort on internal errors.
2004-12-21 13:27:36 +00:00
cf37a9f2f6 Fix typesetting of option arguments.
Fix English in section authors.
2004-12-21 13:16:46 +00:00
e019a3dc63 Really fix typesetting of option arguments. 2004-12-21 13:06:32 +00:00
479c0471fe Move arguments behind options in the synopsis.
Fix typesetting of option arguments.

Document environment variables more clearly, and without assuming csh
syntax.
2004-12-21 12:48:46 +00:00
Ron Koenderink
63ea309bd0 Explain that -s and -p imply -d. 2004-12-21 03:22:10 +00:00
Ron Koenderink
3056684078 Change -2outfile to -2 outfile for both empire.6 and emp_client.6. 2004-12-20 23:29:46 +00:00