[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000967] Re: msgdmp for CDCL



��Ƿ��Ǥ���

> ���ơ�����ˤ�� RubyDCL �ˤ����Ƥϡ�ruby �ѤΥ��顼�ϥ�ɥ��
> �ؿ����֤������뤳�Ȥǡ�������λ��ͫ���ܤ˹��ʤ��ƺѤ�褦�ˤ�
> ��ޤ������ˤ��Τ���Υץ�����������Ԥ��ޤ����ΤǡʤȤ�������
> ����ؤ��Υƥ��Ȥ� RubyDCL �ǹԤä��ˡ�CDCL �Τۤ������åץǡ���
> �����лȤ���褦�ˤʤ�ޤ�����ǥѥå��η���ή���ޤ����嵭�� 
> CDCL ���ѹ���Ԥä���Τ���꡼�������С��������Ȥ߹��ߤ�����
> �פ��ޤ���

���Υѥå���ź�դ��ޤ���ruby-dcl-1.beta.6 �ѤǤ���CDCL �Τۤ���
��ѥå������ʤ��ȻȤ��ޤ���ΤǸ����դ�

�ʤ���CDCL �ν����Ǥ���꡼�����줿�������˼����ߤޤ������Τ�
���ϡ�ver.1.0 �Ȥ������ȻפäƤޤ� (�Ĥޤꡢ���줬������ä�)��
*** init.c_old	Fri Nov  2 16:04:07 2001
--- init.c	Fri Nov 30 20:32:25 2001
***************
*** 58,66 ****
--- 58,85 ----
  void init_misc1_randlib(VALUE mDCL);
  void init_misc1_timelib(VALUE mDCL);
  
+ static int ruby_msgdmp_err_func(char *csub, char *cmsg, 
+ 			      int csub_len, int cmsg_len)
+ {
+     char cmsgx[200], csubx[32];
+     int lmsg, lsub, i;
+     char msg[300];
+     lsub = lenc_(csub, csub_len);
+     lmsg = lenc_(cmsg, cmsg_len);
+     msg[0]='[';
+     strncpy(msg+1,csub,lsub);
+     msg[lsub+1]=']';
+     msg[lsub+2]=' ';
+     strncpy(msg+lsub+3,cmsg,lmsg);
+     for(i=lsub+3+lmsg;i<300;i++){msg[i]='\0';}
+     rb_raise(rb_eRuntimeError, msg);
+     return(0);
+ }
+ 
  void
  Init_dcl()
  {
+     set_msgdmp_err_func(ruby_msgdmp_err_func);
      mNum = rb_define_module("NumRu");
      mDCL = rb_define_module_under(mNum, "DCL");