From: John K. <jmk...@us...> - 2004-09-26 03:29:31
|
Update of /cvsroot/emc/emc2/src/hal/utils In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14588/utils Modified Files: halcmd.c Log Message: fixed a bug that corrupted the module path after loading the first module Index: halcmd.c =================================================================== RCS file: /cvsroot/emc/emc2/src/hal/utils/halcmd.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** halcmd.c 26 Sep 2004 02:48:27 -0000 1.6 --- halcmd.c 26 Sep 2004 03:29:21 -0000 1.7 *************** *** 764,767 **** --- 764,768 ---- struct stat stat_buf; char path_buf[MAX_CMD_LEN]; + char mod_path[MAX_CMD_LEN]; char *cp1, *cp2; char *argv[MAX_TOK+1]; *************** *** 865,880 **** } /* make full module name '<path>/<name>.o' */ ! strcpy (path_buf, rtmod_dir); ! strcat (path_buf, "/"); ! strcat (path_buf, mod_name); ! strcat (path_buf, ".o"); /* is there a file with that name? */ ! if ( stat(path_buf, &stat_buf) != 0 ) { /* nope, try .ko (for kernel 2.6 */ ! cp2 = strrchr(path_buf, '.' ); strcpy(cp2, ".ko" ); ! if ( stat(path_buf, &stat_buf) != 0 ) { /* can't find it */ - *(strrchr(path_buf, '/' )) = '\0'; rtapi_print_msg(RTAPI_MSG_ERR, "HAL: ERROR: Can't find module '%s' in %s\n", mod_name, path_buf); --- 866,880 ---- } /* make full module name '<path>/<name>.o' */ ! strcpy (mod_path, rtmod_dir); ! strcat (mod_path, "/"); ! strcat (mod_path, mod_name); ! strcat (mod_path, ".o"); /* is there a file with that name? */ ! if ( stat(mod_path, &stat_buf) != 0 ) { /* nope, try .ko (for kernel 2.6 */ ! cp2 = strrchr(mod_path, '.' ); strcpy(cp2, ".ko" ); ! if ( stat(mod_path, &stat_buf) != 0 ) { /* can't find it */ rtapi_print_msg(RTAPI_MSG_ERR, "HAL: ERROR: Can't find module '%s' in %s\n", mod_name, path_buf); *************** *** 892,896 **** /* this is the child process - prepare to exec() insmod */ argv[0] = insmod_path; ! argv[1] = path_buf; /* loop thru remaining arguments */ n = 0; --- 892,896 ---- /* this is the child process - prepare to exec() insmod */ argv[0] = insmod_path; ! argv[1] = mod_path; /* loop thru remaining arguments */ n = 0; |