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
20 printf("util_cr file ;remove cr (from crlf)\n\
21 OR util_cr + file ;add cr\n \
22 OR util_cr * \"+[register key value] x=y\" ; add register key value\n\
23 OR util_cr * \"-[register key value]\" ; aremove register key value\n\
24 OR util_cr & file.ini \"SectionKey=value\" ; update ini-ipr-pwf file\n\
25 OR util_cr ~ ;force error\n");
30 void Addkey (const char *hkey,const char *subkey,const char *stag,const char *sval)
32 DWORD disposition,result;
34 if (strcmp(hkey,"HKEY_CLASSES_ROOT")==0) kHkey=HKEY_CLASSES_ROOT;
35 if (strcmp(hkey,"HKEY_CURRENT_USER")==0) kHkey=HKEY_CURRENT_USER;
36 if (strcmp(hkey,"HKEY_LOCAL_MACHINE")==0) kHkey=HKEY_LOCAL_MACHINE;
39 result=(RegCreateKeyEx(kHkey /*HKEY_LOCAL_MACHINE*/
42 ,REG_OPTION_NON_VOLATILE
45 ,&disposition)==ERROR_SUCCESS);
48 printf("AFS Error - Could Not create a registration key\n");
51 if (stag==NULL) return;
52 if ((sval)&&(strlen(sval)))
55 result=RegSetValueEx(kPkey,"",0,REG_SZ,(CONST BYTE *)sval,strlen(sval));
57 result=RegSetValueEx(kPkey,stag,0,REG_SZ,(CONST BYTE *)sval,strlen(sval));
61 result=(RegSetValueEx(kPkey,"",0,REG_SZ,(CONST BYTE *)"",0));
63 result=(RegSetValueEx(kPkey,stag,0,REG_SZ,(CONST BYTE *)"",0));
65 if(result!=ERROR_SUCCESS)
67 printf("AFS Error - Could Not create a registration key\n");
72 void Subkey(const char *hkey,const char *subkey)
76 if (strcmp(hkey,"HKEY_CLASSES_ROOT")==0) kHkey=HKEY_CLASSES_ROOT;
77 if (strcmp(hkey,"HKEY_CURRENT_USER")==0) kHkey=HKEY_CURRENT_USER;
78 if (strcmp(hkey,"HKEY_LOCAL_MACHINE")==0) kHkey=HKEY_LOCAL_MACHINE;
85 if(result!=ERROR_SUCCESS)
87 printf("AFS Error - Could Not create a registration key\n");
92 int main(int argc, char* argv[])
103 if (strcmp(argv[1],"~")==0)
107 if (strcmp(argv[1],"*")==0)
108 { /* "[HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}] @=AFS Client Shell Extension" */
111 for (i=2;argc>=3;i++)
113 char *ssub=strtok(argv[i],"[");
115 char *skey=strtok(NULL,"]");
117 if ((ssub==NULL) || (skey==NULL))
119 printf("format error parameter %s\n",argv[i]);
123 stag=strtok(NULL,"\0");
127 ssub=strtok(skey,"\\");
128 ssub=strtok(NULL,"\0");
129 sval=strtok(stag,"=");
130 sval=strtok(NULL,"\0");
134 Addkey (skey,ssub,stag,sval);
138 Addkey (skey,ssub,stag,"");
148 if (strcmp(argv[1],"&")==0)
152 for (i=3;argc>=4;i++)
154 char *ssect=strtok(argv[i],"[");
155 char *skey=strtok(argv[i],"]");
157 skey=strtok(NULL,"=");
158 if ((ssect==NULL) || (skey==NULL))
160 printf("format error parameter %s\n",argv[i]);
166 sval=strtok(NULL,"=");
169 printf("format error parameter %s\n",argv[i]);
172 printf("parameters %s %s %s %s\n",ssect,skey,sval,argv[2]);
173 if (WritePrivateProfileString(ssect,skey,sval,argv[2])==0)
177 FORMAT_MESSAGE_ALLOCATE_BUFFER |
178 FORMAT_MESSAGE_FROM_SYSTEM |
179 FORMAT_MESSAGE_IGNORE_INSERTS,
182 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
187 printf("Error writing profile string - %s",lpMsgBuf);
188 LocalFree( lpMsgBuf );
195 strcpy(fname,argv[2]);
196 if (strcmp(argv[1],"+")==0)
198 file=fopen(fname,"rb");
201 len=filelength(_fileno(file));
202 ch=(char *)malloc(len+2);
203 *ch++=0; /* a small hack to allow matching /r/n if /n is first character*/
204 len=fread(ch,sizeof(char),len,file);
205 file=freopen(fname,"wb",file);
208 if ((*ch=='\n') && (*(ch-1)!='\r')) /*line feed alone*/
218 if (strcmp(argv[1],"-")==0)
220 strcpy(fname,argv[2]);
221 file=fopen(fname,"rb");
224 len=filelength(_fileno(file));
225 ch=(char *)malloc(len+1);
226 len=fread(ch,sizeof(char),len,file);
227 file=freopen(fname,"wb",file);
237 if (strstr(fname,".et")==NULL)
239 file=fopen(fname,"rb");
242 len=filelength(_fileno(file));
243 ch=(char *)malloc(len+1);
244 len=fread(ch,sizeof(char),len,file);
245 file=freopen(fname,"wb",file);
253 pvar=(CHARP *)malloc(argc*sizeof(CHARP));
254 for (i=1;i<argc-1;i++)
258 l=_spawnvp(_P_WAIT,argv[1],pvar);