aboutsummaryrefslogtreecommitdiffstats
path: root/src/jake2/game/Info.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jake2/game/Info.java')
-rw-r--r--src/jake2/game/Info.java454
1 files changed, 201 insertions, 253 deletions
diff --git a/src/jake2/game/Info.java b/src/jake2/game/Info.java
index b13b065..f7d8b8d 100644
--- a/src/jake2/game/Info.java
+++ b/src/jake2/game/Info.java
@@ -1,263 +1,211 @@
/*
-Copyright (C) 1997-2001 Id Software, Inc.
+ * Copyright (C) 1997-2001 Id Software, Inc.
+ *
+ * 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 Foundation, Inc., 59 Temple
+ * Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
-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.
+// Created on 27.12.2003 by RST.
+// $Id: Info.java,v 1.4 2004-09-22 19:22:03 salomo Exp $
+package jake2.game;
-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.
+import jake2.Defines;
+import jake2.qcommon.Com;
-See the GNU General Public License for more details.
+import java.util.StringTokenizer;
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+public class Info {
-*/
+ public static String Info_ValueForKey(String s, String key) {
-// Created on 27.12.2003 by RST.
-// $Id: Info.java,v 1.3 2004-09-10 19:02:54 salomo Exp $
+ StringTokenizer tk = new StringTokenizer(s, "\\");
-package jake2.game;
+ while (tk.hasMoreTokens()) {
+ String key1 = tk.nextToken();
-import java.util.StringTokenizer;
+ if (!tk.hasMoreTokens()) {
+ Com.Printf("MISSING VALUE\n");
+ return s;
+ }
+ String value1 = tk.nextToken();
+
+ if (key.equals(key1))
+ return value1;
+ }
+
+ return "";
+ }
+
+ /**
+ * TODO RST: DANGEROUS port, returns the modified userinfo string, was
+ * pointer-pointer manipulation first
+ */
+ public static String Info_SetValueForKey1(String s, String key, String value) {
+
+ if (value == null || value.length() == 0)
+ return s;
+
+ if (key.indexOf('\\') != -1 || value.indexOf('\\') != -1) {
+ Com.Printf("Can't use keys or values with a \\\n");
+ return s;
+ }
+
+ if (key.indexOf(';') != -1) {
+ Com.Printf("Can't use keys or values with a semicolon\n");
+ return s;
+ }
+
+ if (key.indexOf('"') != -1 || value.indexOf('"') != -1) {
+ Com.Printf("Can't use keys or values with a \"\n");
+ return s;
+ }
+
+ if (key.length() > Defines.MAX_INFO_KEY - 1
+ || value.length() > Defines.MAX_INFO_KEY - 1) {
+ Com.Printf("Keys and values must be < 64 characters.\n");
+ return s;
+ }
+
+ StringBuffer sb = new StringBuffer(Info_RemoveKey1(s, key));
+
+ if (sb.length() + 2 + key.length() + value.length() > Defines.MAX_INFO_STRING) {
+
+ Com.Printf("Info string length exceeded\n");
+ return s;
+ }
+
+ sb.append('\\').append(key).append('\\').append(value);
+
+ return sb.toString();
+ }
+
+ /** TODO RST: DANGEROUS port, returns now the modified userinfo string. */
+ public static String Info_RemoveKey1(String s, String key) {
+
+ StringBuffer sb = new StringBuffer(512);
-import jake2.*;
-import jake2.client.*;
-import jake2.qcommon.*;
-import jake2.render.*;
-import jake2.server.*;
-
-public class Info extends PlayerView {
-
-
- public static String Info_ValueForKey(String s, String key) {
-
- StringTokenizer tk = new StringTokenizer(s, "\\");
-
- while (tk.hasMoreTokens()) {
- String key1 = tk.nextToken();
-
- if (!tk.hasMoreTokens()) {
- Com.Printf("MISSING VALUE\n");
- return s;
- }
- String value1 = tk.nextToken();
-
- if (key.equals(key1))
- return value1;
- }
-
- return "";
- }
-
- /**TODO RST: DANGEROUS port, returns the modified userinfo string, was pointer-pointer manipulation first*/
- public static String Info_SetValueForKey1(String s, String key, String value) {
-
- if (value == null || value.length() == 0)
- return s;
-
- if (key.indexOf('\\') != -1 || value.indexOf('\\') != -1) {
- Com.Printf("Can't use keys or values with a \\\n");
- return s;
- }
-
- if (key.indexOf(';') != -1) {
- Com.Printf("Can't use keys or values with a semicolon\n");
- return s;
- }
-
- if (key.indexOf('"') != -1 || value.indexOf('"') != -1) {
- Com.Printf("Can't use keys or values with a \"\n");
- return s;
- }
-
- if (key.length() > MAX_INFO_KEY - 1 || value.length() > MAX_INFO_KEY - 1) {
- Com.Printf("Keys and values must be < 64 characters.\n");
- return s;
- }
-
- StringBuffer sb = new StringBuffer(Info_RemoveKey1(s, key));
-
- if (sb.length() + 2 + key.length() + value.length() > Defines.MAX_INFO_STRING){
-
-
- Com.Printf("Info string length exceeded\n");
- return s;
- }
-
- sb.append('\\').append(key).append('\\').append(value);
-
- return sb.toString();
- }
-
-
-
- /** TODO RST: DANGEROUS port, returns now the modified userinfo string.*/
- public static String Info_RemoveKey1(String s, String key) {
-
- StringBuffer sb = new StringBuffer(512);
-
- if (key.indexOf('\\') != -1) {
- Com.Printf("Can't use a key with a \\\n");
- return s;
- }
-
- StringTokenizer tk = new StringTokenizer(s, "\\");
-
- while (tk.hasMoreTokens()) {
- String key1 = tk.nextToken();
-
- if (!tk.hasMoreTokens()) {
- Com.Printf("MISSING VALUE\n");
- return s;
- }
- String value1 = tk.nextToken();
-
- if (!key.equals(key1))
- sb.append('\\').append(key1).append('\\').append(value1);
- }
-
- return sb.toString();
-
- //some old code follows
-
- /*
- char * start;
- char pkey[512];
- char value[512];
- char * o;
-
- if (key.indexOf('\\')!=-1) {
- Com.Printf ("Can't use a key with a \\\n");
- return s;
- }
-
- while () {
- start = s;
- if (* s == '\\')
- s++;
- o = pkey;
- while (* s != '\\') {
- if (!* s)
- return;
- * o++ = * s++;
- }
- * o = 0;
- s++;
-
- o = value;
- while (* s != '\\' && * s) {
- if (!* s)
- return;
- * o++ = * s++;
- }
- * o = 0;
-
- if (!strcmp(key, pkey)) {
- strcpy(start, s); // remove this part
- return;
- }
-
- if (!* s)
- return;
- }
- */
- }
-
- /*
- ==================
- Info_Validate
-
- Some characters are illegal in info strings because they
- can mess up the server's parsing
- ==================
- */
- public static boolean Info_Validate(String s) {
- if (s.indexOf('"') != -1)
- //return false;
- if (s.indexOf(';') != -1)
- return false;
- return true;
- }
-
- private static String fillspaces = " ";
-
-
- public static void Print(String s) {
-
- StringBuffer sb = new StringBuffer(512);
- StringTokenizer tk = new StringTokenizer(s, "\\");
-
- while (tk.hasMoreTokens()) {
-
- String key1 = tk.nextToken();
-
- if (!tk.hasMoreTokens()) {
- Com.Printf("MISSING VALUE\n");
- return;
- }
-
- String value1 = tk.nextToken();
-
- sb.append(key1);
-
- int len = key1.length();
-
- if (len < 20) {
- sb.append(fillspaces.substring(len));
- }
-
- sb.append('=').append(value1).append('\n');
- }
-
- Com.Printf(sb.toString());
-
- /* some old code follows
-
- char * o;
- int l;
-
- if (* s == '\\')
- s++;
- while (* s) {
- o = key;
- while (* s && * s != '\\')
- * o++ = * s++;
-
- l = o - key;
- if (l < 20) {
- memset(o, ' ', 20 - l);
- key[20] = 0;
- }
- else
- * o = 0;
- Com_Printf("%s", key);
-
- if (!* s) {
- Com_Printf("MISSING VALUE\n");
- return;
- }
-
- o = value;
- s++;
- while (* s && * s != '\\')
- * o++ = * s++;
- * o = 0;
-
- if (* s)
- s++;
- Com_Printf("%s\n", value);
- }
- */
- }
-
- public static void testintern(StringBuffer in) {
- in.setLength(0);
- in.append("123!");
- }
-
-}
+ if (key.indexOf('\\') != -1) {
+ Com.Printf("Can't use a key with a \\\n");
+ return s;
+ }
+
+ StringTokenizer tk = new StringTokenizer(s, "\\");
+
+ while (tk.hasMoreTokens()) {
+ String key1 = tk.nextToken();
+
+ if (!tk.hasMoreTokens()) {
+ Com.Printf("MISSING VALUE\n");
+ return s;
+ }
+ String value1 = tk.nextToken();
+
+ if (!key.equals(key1))
+ sb.append('\\').append(key1).append('\\').append(value1);
+ }
+
+ return sb.toString();
+
+ //some old code follows
+
+ /*
+ * char * start; char pkey[512]; char value[512]; char * o;
+ *
+ * if (key.indexOf('\\')!=-1) { Com.Printf ("Can't use a key with a
+ * \\\n"); return s; }
+ *
+ * while () { start = s; if (* s == '\\') s++; o = pkey; while (* s !=
+ * '\\') { if (!* s) return; o++ = * s++; } o = 0; s++;
+ *
+ * o = value; while (* s != '\\' && * s) { if (!* s) return; o++ = *
+ * s++; } o = 0;
+ *
+ * if (!strcmp(key, pkey)) { strcpy(start, s); // remove this part
+ * return; }
+ *
+ * if (!* s) return; }
+ */
+ }
+
+ /*
+ * ================== Info_Validate
+ *
+ * Some characters are illegal in info strings because they can mess up the
+ * server's parsing ==================
+ */
+ public static boolean Info_Validate(String s) {
+ if (s.indexOf('"') != -1)
+ //return false;
+ if (s.indexOf(';') != -1)
+ return false;
+ return true;
+ }
+
+ private static String fillspaces = " ";
+
+ public static void Print(String s) {
+
+ StringBuffer sb = new StringBuffer(512);
+ StringTokenizer tk = new StringTokenizer(s, "\\");
+
+ while (tk.hasMoreTokens()) {
+
+ String key1 = tk.nextToken();
+
+ if (!tk.hasMoreTokens()) {
+ Com.Printf("MISSING VALUE\n");
+ return;
+ }
+
+ String value1 = tk.nextToken();
+
+ sb.append(key1);
+
+ int len = key1.length();
+
+ if (len < 20) {
+ sb.append(fillspaces.substring(len));
+ }
+
+ sb.append('=').append(value1).append('\n');
+ }
+
+ Com.Printf(sb.toString());
+
+ /*
+ * some old code follows
+ *
+ * char * o; int l;
+ *
+ * if (* s == '\\') s++; while (* s) { o = key; while (* s && * s !=
+ * '\\') o++ = * s++;
+ *
+ * l = o - key; if (l < 20) { memset(o, ' ', 20 - l); key[20] = 0; }
+ * else o = 0; Com_Printf("%s", key);
+ *
+ * if (!* s) { Com_Printf("MISSING VALUE\n"); return; }
+ *
+ * o = value; s++; while (* s && * s != '\\') o++ = * s++; o = 0;
+ *
+ * if (* s) s++; Com_Printf("%s\n", value); }
+ */
+ }
+
+ public static void testintern(StringBuffer in) {
+ in.setLength(0);
+ in.append("123!");
+ }
+} \ No newline at end of file