1 /* crlf.c : Defines the entry point for the console application.*/
3 /* Copyright 2000, International Business Machines Corporation and others.
6 This software has been released under the terms of the IBM Public
7 License. For details, see the LICENSE file in the top-level source
8 directory or online at http://www.openafs.org/dl/license10.html
21 printf("util_cr file ;remove cr (from crlf)\n\
22 OR util_cr + file ;add cr\n \
23 OR util_cr * \"+[register key value] x=y\" ; add register key value\n\
24 OR util_cr * \"-[register key value]\" ; aremove register key value\n\
25 OR util_cr & file.ini \"SectionKey=value\" ; update ini-ipr-pwf file\n\
26 OR util_cr ~ ;force error\n");
31 void Addkey (const char *hkey,const char *subkey,const char *stag,const char *sval)
33 DWORD disposition,result;
35 if (strcmp(hkey,"HKEY_CLASSES_ROOT")==0) kHkey=HKEY_CLASSES_ROOT;
36 if (strcmp(hkey,"HKEY_CURRENT_USER")==0) kHkey=HKEY_CURRENT_USER;
37 if (strcmp(hkey,"HKEY_LOCAL_MACHINE")==0) kHkey=HKEY_LOCAL_MACHINE;
40 result=(RegCreateKeyEx(kHkey /*HKEY_LOCAL_MACHINE*/
43 ,REG_OPTION_NON_VOLATILE
46 ,&disposition)==ERROR_SUCCESS);
49 printf("AFS Error - Could Not create a registration key\n");
52 if (stag==NULL) return;
53 if ((sval)&&(strlen(sval)))
56 result=RegSetValueEx(kPkey,"",0,REG_SZ,(CONST BYTE *)sval,strlen(sval));
58 result=RegSetValueEx(kPkey,stag,0,REG_SZ,(CONST BYTE *)sval,strlen(sval));
62 result=(RegSetValueEx(kPkey,"",0,REG_SZ,(CONST BYTE *)"",0));
64 result=(RegSetValueEx(kPkey,stag,0,REG_SZ,(CONST BYTE *)"",0));
66 if(result!=ERROR_SUCCESS)
68 printf("AFS Error - Could Not create a registration key\n");
73 void Subkey(const char *hkey,const char *subkey)
77 if (strcmp(hkey,"HKEY_CLASSES_ROOT")==0) kHkey=HKEY_CLASSES_ROOT;
78 if (strcmp(hkey,"HKEY_CURRENT_USER")==0) kHkey=HKEY_CURRENT_USER;
79 if (strcmp(hkey,"HKEY_LOCAL_MACHINE")==0) kHkey=HKEY_LOCAL_MACHINE;
86 if(result!=ERROR_SUCCESS)
88 printf("AFS Error - Could Not create a registration key\n");
93 int main(int argc, char* argv[])
100 typedef char * CHARP;
\r
104 if (strcmp(argv[1],"~")==0)
105 { //check for file presence
\r
106 if (fopen(argv[2],"r"))
\r
108 printf("Error---%s\n",argv[3]);
\r
111 if (strcmp(argv[1],"*")==0)
112 { /* "[HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}] @=AFS Client Shell Extension" */
115 for (i=2;argc>=3;i++)
117 char *ssub=strtok(argv[i],"[");
119 char *skey=strtok(NULL,"]");
121 if ((ssub==NULL) || (skey==NULL))
123 printf("format error parameter %s\n",argv[i]);
127 stag=strtok(NULL,"\0");
131 ssub=strtok(skey,"\\");
132 ssub=strtok(NULL,"\0");
133 sval=strtok(stag,"=");
134 sval=strtok(NULL,"\0");
138 Addkey (skey,ssub,stag,sval);
142 Addkey (skey,ssub,stag,"");
152 if (strcmp(argv[1],"&")==0)
156 for (i=3;argc>=4;i++)
158 char *ssect=strtok(argv[i],"[");
159 char *skey=strtok(argv[i],"]");
161 skey=strtok(NULL,"=");
162 if ((ssect==NULL) || (skey==NULL))
164 printf("format error parameter %s\n",argv[i]);
170 sval=strtok(NULL,"=");
173 printf("format error parameter %s\n",argv[i]);
176 // printf("parameters %s %s %s %s\n",ssect,skey,sval,argv[2]);
177 if (WritePrivateProfileString(ssect,skey,sval,argv[2])==0)
181 FORMAT_MESSAGE_ALLOCATE_BUFFER |
182 FORMAT_MESSAGE_FROM_SYSTEM |
183 FORMAT_MESSAGE_IGNORE_INSERTS,
186 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
191 printf("Error writing profile string - %s",lpMsgBuf);
192 LocalFree( lpMsgBuf );
199 strcpy(fname,argv[2]);
200 if (strcmp(argv[1],"+")==0)
202 file=fopen(fname,"rb");
205 len=filelength(_fileno(file));
206 ch=(char *)malloc(len+2);
207 *ch++=0; /* a small hack to allow matching /r/n if /n is first character*/
208 len=fread(ch,sizeof(char),len,file);
209 file=freopen(fname,"wb",file);
212 if ((*ch=='\n') && (*(ch-1)!='\r')) /*line feed alone*/
222 if (strcmp(argv[1],"-")==0)
224 strcpy(fname,argv[2]);
225 file=fopen(fname,"rb");
228 len=filelength(_fileno(file));
229 ch=(char *)malloc(len+1);
230 len=fread(ch,sizeof(char),len,file);
231 file=freopen(fname,"wb",file);
241 if (strstr(fname,".et")==NULL)
243 file=fopen(fname,"rb");
246 len=filelength(_fileno(file));
247 ch=(char *)malloc(len+1);
248 len=fread(ch,sizeof(char),len,file);
249 file=freopen(fname,"wb",file);
257 pvar=(CHARP *)malloc(argc*sizeof(CHARP));
258 for (i=1;i<argc-1;i++)
262 l=_spawnvp(_P_WAIT,argv[1],pvar);