persistentstorage/sqlite3api/TEST/TCL/src/convertPathSlashes.c
changeset 0 08ec8eefde2f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/persistentstorage/sqlite3api/TEST/TCL/src/convertPathSlashes.c	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,91 @@
+// Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This file converts a linux/tcl path to or from a windows path.
+// 
+//
+
+/*
+ * convert to a windows path.  required because PIPS
+ * is mostly posix but uses Windows paths and tcl uses unix paths internally (see FsJoinPath())
+ *
+ * inspired by TclWinNoBackslash()
+ *
+ * July 30, 2007
+ */
+
+#include "convertPathSlashes.h"
+  
+/**  
+ * Switch the separator chars inside a given string. both pointers can point
+ *   to the same string or different strings.
+ *
+ * @param direction  direction to convert to.
+ * @param pTo        pointer of string to be converted.
+ * @param pFrom      pointer to string to be converted from.
+ *
+ * @ret   pTo        pointer to last char+1 of converted buffer.
+ */
+char* tclSymbianPathSlashConversion(direction, pTo, pFrom)
+	PathConversionDirection direction;   // TO_TCL - '\\' to '/', TO_SYMBIAN - '/' to '\\'
+	char *pTo;       // string to be converted.
+	const char *pFrom;     // string to be converted.
+{
+	char  toChar;
+	char  fromChar;
+	
+	if (direction == TO_TCL) {
+		fromChar = '\\';
+		toChar = '/';
+	}
+	else {        // TO_SYMBIAN
+		fromChar = '/';
+		toChar = '\\';		
+	}
+	
+   	for (; *pFrom != '\0'; pTo++, pFrom++) {
+		if (*pFrom == fromChar) {
+    		*pTo = toChar;
+		}		
+		else {
+			*pTo = *pFrom;	
+		}
+	}//for
+		
+	return pTo;	
+}
+
+/**  
+ * Copies the source path to the destination path and null 
+ *   terminates the destination string.
+ *
+ * @param direction  direction to convert to.
+ * @param pTo        pointer of string to be converted.
+ * @param pFrom      pointer to string to be converted from.
+ */
+// copy from fromStrPtr into a buffer supplied by toStrPtr.
+void tclCopySymbianPathSlashConversion(direction, toStrPtr, fromStrPtr)
+	PathConversionDirection direction;   // TO_TCL - '\\' to '/', TO_SYMBIAN - '/' to '\\'
+	char *toStrPtr;    // string to be converted.
+	const char *fromStrPtr;// string to convert from.
+{
+	char* pTo;
+	const char* pFrom;
+
+	
+	pTo = toStrPtr;
+	pFrom = fromStrPtr;
+	pTo = tclSymbianPathSlashConversion(direction, pTo, pFrom);
+	*pTo = '\0';		
+}
+