[Dsctl-devel] SF.net SVN: dsctl: [122] src/main.c
Status: Alpha
                
                Brought to you by:
                
                    roger-linux
                    
                
            | 
     
      
      
      From: <rog...@us...> - 2007-07-17 23:29:18
      
     
   | 
Revision: 122
          http://dsctl.svn.sourceforge.net/dsctl/?rev=122&view=rev
Author:   roger-linux
Date:     2007-07-17 16:29:16 -0700 (Tue, 17 Jul 2007)
Log Message:
-----------
main.c: Now reading and creating dsctl config info to and from ~/.dsctl/config
(TODO: mmm... have yet to check for pre-existing folder)
Signed-off-by: Roger <ro...@es...>
Acked-by: Roger <ro...@es...>
Modified Paths:
--------------
    src/main.c
Modified: src/main.c
===================================================================
--- src/main.c	2007-07-17 09:42:31 UTC (rev 121)
+++ src/main.c	2007-07-17 23:29:16 UTC (rev 122)
@@ -28,6 +28,11 @@
 #include <errno.h>
 #include <ctype.h>
 
+/* For folder open & mkdir */
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <dirent.h>
+
 #include "config.h"
 #include "serial.h"
 #include "commands.h"
@@ -41,7 +46,7 @@
 									 * determine how certain commands are given to the scanner */
 int debug = DEBUG;				/* debug flag for extra output */
 int daemon_mode = 0;			/* this should get us a daemon mode */
-int osd = OSD;							/* indicate the user wants ncurses osd */
+int osd = OSD;					/* indicate the user wants ncurses osd */
 
 /***********************************************************************
  * the main function.  ain't it grand?
@@ -50,22 +55,37 @@
 {
 	int i, cmd_argc, cmd_loc, cmd_arg_loc;
 	char **cmd_argv;
+
 	char serial_port[20];
 	int baud_rate;
+
+	char *configfolder_name;
 	char *configloc;
+	DIR *configfolder;
+	FILE *configfile;
+
 	char configline[81];
-	FILE *configfile;
 	char errorstr[100];
 
-	bzero(serial_port, 20);
+	memset(serial_port, 0, 20);
+	memset(configline, 0, 81);
+	memset(errorstr, 0, 100);
 
 	cmd_loc = 1;
 	cmd_arg_loc = 2;
+
 	strncat(serial_port, DEFAULT_PORT, 20);	/* default port ttyS0 */
 	baud_rate = DEFAULT_BAUDRATE;	/* default baud rate 9600bps */
 
-	/* check ~/.dsctl for configuration information */
-	configloc = strcat(getenv("HOME"), "/.dsctl");
+	/* Check for $HOME/.dsctl folder */
+	configfolder_name = strcat(getenv("HOME"), "/.dsctl");
+	if ((configfolder = opendir(configfolder_name)) == NULL)
+	{
+		mkdir(configfolder_name, 0755);
+	}
+
+	/* Check for $HOME/.dsctl/config */
+	configloc = strcat(getenv("HOME"), "/config");
 	if ((configfile = fopen(configloc, "r")) == NULL)
 	{
 		if (errno == ENOENT)	/* config file not found -- create it */
@@ -109,7 +129,7 @@
 				sscanf(configline, "%s %s", configcmd, configvar);
 				if (strcmp(configcmd, "port") == 0)
 				{
-					bzero(serial_port, 20);
+					memset(serial_port, 0, 20);
 					strncat(serial_port, configvar, 20);
 				}
 
@@ -150,7 +170,7 @@
 	{
 		if (strcmp(argv[i], "-p") == 0 || strcmp(argv[i], "--port") == 0)	/* port */
 		{
-			bzero(serial_port, 20);
+			memset(serial_port, 0, 20);
 			strncat(serial_port, argv[++i], 20);
 
 			cmd_loc += 2;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |