Path: blob/main/japanese/FreeWnn-lib/files/patch-Wnn-jserver-do_filecom.c
18157 views
Index: Wnn/jserver/do_filecom.c1===================================================================2RCS file: /home/cvs/private/hrs/freewnn/Wnn/jserver/do_filecom.c,v3retrieving revision 1.1.1.14retrieving revision 1.25diff -u -p -r1.1.1.1 -r1.26--- Wnn/jserver/do_filecom.c 20 Dec 2008 07:13:30 -0000 1.1.1.17+++ Wnn/jserver/do_filecom.c 2 Jan 2010 11:51:24 -0000 1.28@@ -868,82 +868,96 @@ js_file_write (void)9void10js_file_receive (void)11{12- int env_id, fid;13- struct wnn_file_uniq fq;14- int mode = 1;15- int i;16- int error = 0;17+ int env_id, fid;18+ struct wnn_file_uniq fq;19+ int mode = 1;20+ int i;21+ int error = 0;22+23+ env_id = get4_cur(); /* env_id */24+ fid = get4_cur();25+ if (find_fid_in_env(env_id, fid) == -1) {26+ fprintf(stderr, "find_fid_in_env failed\n");27+28+ /* valid */29+ /* dummy */30+ puts_cur ("!");31+ putc_purge();32+33+ error = 1;34+ } else {35+ fprintf(stderr, "find_fid_in_env success: %s\n",36+ files[fid].name);37+ puts_cur(files[fid].name);38+ putc_purge();39+40+ }41+42+ fprintf(stderr, "get4\n");43+ if (get4_cur() == -1) {44+ /* Ack */45+ return;46+ }47+ fprintf(stderr, "get4: end\n");48+49+ fprintf(stderr, "get4 x 3 start\n");50+51+ fq.time = get4_cur();52+ fq.dev = get4_cur();53+ fq.inode = get4_cur();54+55+ fprintf(stderr, "get4 x 3 end\n");56+57+ for (i = 0; i < WNN_HOSTLEN; i++) {58+ fq.createhost[i] = getc_cur();59+ }60+61+ if (error || files[fid].ref_count == -1) {62+ wnn_errorno = WNN_FID_ERROR;63+ error_ret ();64+ putc_purge ();65+ return;66+ }67+68+ if (fq.time != 0) {69+ /* Old File Exist */70+ mode = must_write_file (&files[fid], &fq);71+ }72+73+ if (mode == -1) {74+ wnn_errorno = WNN_FID_ERROR;75+ error_ret ();76+ putc_purge ();77+ return;78+ } else if (mode == 0) {79+ /* need not saving */80+ put4_cur(0);81+ putc_purge();82+ return;83+ }84+85+ put4_cur (mode);86+ putc_purge ();87+88+ if (get4_cur () == -1)89+ return;90+91+ if (rcv_file (&files[fid], mode) == -1) {92+ /* wnn_errorno=WNN_FILE_WRITE_ERROR; */93+ error_ret();94+ putc_purge();95+ return;96+ }97+98+ if (mode == 1 || mode == 2) {99+ clear_dirty_bit (&files[fid]);100+ }101102- env_id = get4_cur (); /* env_id */103- fid = get4_cur ();104- /**/ if (find_fid_in_env (env_id, fid) == -1)105- { /* valid */106- puts_cur ("!");107- putc_purge (); /* dummy */108- error = 1;109- }110- else111- {112- puts_cur (files[fid].name);113- putc_purge ();114- }115- if (get4_cur () == -1)116- return; /* Ack */117-118- fq.time = get4_cur ();119- fq.dev = get4_cur ();120- fq.inode = get4_cur ();121- for (i = 0; i < WNN_HOSTLEN; i++)122- {123- fq.createhost[i] = getc_cur ();124- }125- if (error || files[fid].ref_count == -1)126- {127- wnn_errorno = WNN_FID_ERROR;128- error_ret ();129- putc_purge ();130- return;131- }132- if (fq.time != 0)133- { /* Old File Exist */134- mode = must_write_file (&files[fid], &fq);135- }136-137- if (mode == -1)138- {139- wnn_errorno = WNN_FID_ERROR;140- error_ret ();141- putc_purge ();142- return;143- }144- else if (mode == 0)145- { /* need not saving */146- put4_cur (0);147- putc_purge ();148- return;149- }150- put4_cur (mode);151- putc_purge ();152-153- if (get4_cur () == -1)154- return;155-156- /**/ if (rcv_file (&files[fid], mode) == -1)157- {158-/* wnn_errorno=WNN_FILE_WRITE_ERROR; */ error_ret ();159- putc_purge ();160- return;161- }162- if (mode == 1 || mode == 2)163- {164- clear_dirty_bit (&files[fid]);165- }166-167- put4_cur (0);168+ put4_cur (0);169/*170- put4_cur(fid);171+ put4_cur(fid);172*/173- putc_purge ();174+ putc_purge();175}176177178@@ -994,18 +1008,18 @@ del_fid_from_env (int env_id, int fid)179int180find_fid_in_env (int env_id, int fid)181{182- register int i;183- register int *file = env[env_id]->file;184- for (i = 0; i < WNN_MAX_FILE_OF_AN_ENV; i++)185- {186- if ((file)[i] == -1)187- continue;188- if ((file)[i] == fid)189- {190- return i;191- }192- }193- return -1;194+ int i;195+ int *file = env[env_id]->file;196+197+ for (i = 0; i < WNN_MAX_FILE_OF_AN_ENV; i++) {198+ if ((file)[i] == -1)199+ continue;200+ if ((file)[i] == fid) {201+ return i;202+ }203+ }204+205+ return -1;206}207208static int209210211