
QueryPosition()
***************


FUNKTION
========

   string *QueryPosition();


DEFINIERT IN
============

   /std/transport.c


ARGUMENTE
=========

   keine


BESCHREIBUNG
============

   Es wird ein Array von zwei Strings mit Kennzeichnern der letzten (oder
   aktuellen) und der naechsten Station im Fahrplan zurueckgegeben.

   Die Kennzeichner sind dabei die ersten Argumente der entsprechenden
   AddXXX()-Aufrufen, also der Name der Haltestelle bei AddRoute, der Text
   der Meldung bei AddMsg() und der Name der Funktion bei AddFun().


RUeCKGABEWERT
=============

   Array mit zwei Strings. Der erste String gibt den Kennzeichner der
   momentanen Fahrplanstation an, der zweite String den Kennzeichner der
   naechsten Fahrplanstation.


SIEHE AUCH
==========

   AddRoute(), AddMsg(), AddFun(), /std/transport.c

Last modified: Wed May 8 10:22:52 1996 by Wargon
