[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.
|